Eri*_*rik 0 iphone objective-c
从使用contains运算符的字符串创建NSPredicate是可能的,而且很容易,如下所示:
[NSPredicate predicateWithFormat:@"name contains[cd] \"Hello!\""];
Run Code Online (Sandbox Code Playgroud)
我想以编程方式创建这个谓词,因为可以与NSComparisonPredicate进行比较.有关于此的任何想法?
我以编程方式执行此操作的动机是,它不易出错,因为搜索字符串包含用户输入且未预定义.
海因里希
当然,这很简单:
NSExpression * leftExpression = [NSExpression expressionForKeyPath:@"name"];
NSExpression * rightExpression = [NSExpression expressionForConstantValue:@"Hello!"];
NSComparisonPredicate * predicate = [NSComparisonPredicate predicateWithLeftExpression:leftExpression
rightExpression:rightExpression
modifier:NSDirectPredicateModifier
type:NSContainsPredicateOperatorType
options:(NSCaseInsensitivePredicateOption | NSDiacriticInsensitivePredicateOption)];
Run Code Online (Sandbox Code Playgroud)