Wil*_*con 2 objective-c nspredicate ios
我想使用查询字符串在名字或姓氏上搜索一组用户.下面是谓词,但我得到了一个例外.
NSPredicate *sortingPred = [NSPredicate predicateWithFormat:@"(User.first contains[c] %@) OR (User.last contains[c] %@)", keyword, keyword];
Run Code Online (Sandbox Code Playgroud)
例外:
exception NSException * name:@"NSUnknownKeyException" reason:@"[<User 0x12911980> valueForUndefinedKey:]: this class is not key value coding-compliant for the key User." 0x13653620
Run Code Online (Sandbox Code Playgroud)
Mar*_*n R 10
您不能在谓词中包含实体名称,只能包含键(或键路径):
[NSPredicate predicateWithFormat:@"(first CONTAINS[c] %@) OR (last CONTAINS[c] %@)", keyword, keyword]
Run Code Online (Sandbox Code Playgroud)
更新: "FIRST"和"LAST"在谓词中具有特殊含义,它们用于指定数组中的第一个或最后一个元素(请参阅"谓词编程指南"中的聚合操作).
使用%K扩展属性键的格式可以避免这种不明确性:
[NSPredicate predicateWithFormat:@"(%K CONTAINS[c] %@) OR (%K CONTAINS[c] %@)",
@"first", keyword, @"last", keyword];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1793 次 |
| 最近记录: |