don*_*ile 3 iphone core-data nspredicate
我在几次迭代中构建了一个非常复杂的谓词,并希望在谓词中立即提供匹配值.
代替:
[NSPredicate predicateWithFormat:@"departmentName like[c] %@"];
Run Code Online (Sandbox Code Playgroud)
我想要做:
NSString*str = [NSString stringWithFormat:@"departmentName like [c]'%@'",departmentName]; [NSPredicate predicateWithFormat:str];
由于这是一个愚蠢的替代,我想通过输入垃圾可能会意外地"破解"谓词.
我找不到任何能够"神奇地引用"这个价值的东西.
原因是,我需要在几次迭代中构建一个复杂的谓词,所以我必须构造一个大的谓词字符串.模板不适用于SUBQUERY.所以我需要在字符串中立即提供值,因为我不想根据谓词格式的值来进行20次不同的谓词初始化.
NSComparisonPredicate直接使用,并绕过谓词格式问题.
NSPredicate *fetchPredicate = [NSComparisonPredicate predicateWithLeftExpression:[NSExpression expressionForKeyPath:@"departmentName"]
rightExpression:[NSExpression expressionForConstantValue:searchTerm]
modifier:NSDirectPredicateModifier
type:NSLikePredicateOperatorType
options:0];
Run Code Online (Sandbox Code Playgroud)
阅读谓词编程指南 "直接在代码中创建谓词",并查看类参考NSComparisonPredicate
| 归档时间: |
|
| 查看次数: |
1698 次 |
| 最近记录: |