2012-07-24 58 views
-1

正確方法,我發現2種不同的方法來創建一個NSPredicate。創建一個NSPredicate

方法1:

NSExpression *exprName = [NSExpression expressionForKeyPath:@"name"]; 
NSExpression *exprFilter = [NSExpression expressionForConstantValue: name ]; 
NSPredicate *predicate = [NSComparisonPredicate predicateWithLeftExpression: exprName 
                   rightExpression: exprFilter 
                    modifier: NSDirectPredicateModifier 
                     type: NSContainsPredicateOperatorType 
                     options: NSCaseInsensitivePredicateOption];  

方式2:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name CONTAINS[c] %@", name]; 

什麼是創建一個NSPredicate,還可以防止SQL注入攻擊的最佳方法?如果以編程方式設置一個複雜謂詞

回答

4

第一種方式是有用的。除此之外,第二種方式很好。您不必擔心使用Core Data進行SQL注入。

relevant

also relevant