2012-07-24 52 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