pla*_*hen 4 core-data nspredicate ios6
我试图建立一个谓词来过滤多对多的关系.我有一个带有许多标签的Message对象作为关系.
我可以做以下事情:
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"ANY labels.labelId == 4"];
Run Code Online (Sandbox Code Playgroud)
我只会获得带有labelId 4的Label的消息.但是如果我这样做的话
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"NONE labels.labelId == 4"];
Run Code Online (Sandbox Code Playgroud)
这将给我每个单独的Message对象,即使它们与LabelId具有标签关系.为什么会这样?有人可以帮忙吗?
Mar*_*n R 11
似乎"无"或"无任何"在Core Data谓词中无法正常工作.两个谓词
NONE labels.labelId == 4
NOT (ANY labels.labelId == 4)
Run Code Online (Sandbox Code Playgroud)
实际上返回相同的结果
ANY labels.labelId != 4
Run Code Online (Sandbox Code Playgroud)
这不是我理解文档的方式.作为解决方法,您可以使用SUBQUERY:
[NSPredicate predicateWithFormat:@"SUBQUERY(labels, $x, $x.labelId == 4).@count == 0"]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
448 次 |
| 最近记录: |