正确的方法来创建NSPredicate

时间:2012-07-24 14:29:38

标签: iphone ios core-data 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并阻止SQLInjection的最佳方法是什么?

1 个答案:

答案 0 :(得分:4)

如果以编程方式设置复杂谓词,第一种方法很有用。除此之外,第二种方式很好。您不必担心使用Core Data进行SQL注入。

relevant

also relevant