JGL*_*dio 5 core-data objective-c nspredicate ios
如何创建可以获取的谓词:所有问题都不包含answer.correct = "1".
如果返回的数组包含"0"和"1",则以下谓词不起作用:
[NSPredicate predicateWithFormat:@"NONE answers.correct IN %@", [NSArray arrayWithObject:@"1"]];
Run Code Online (Sandbox Code Playgroud)
也试过NOT(ANY ...):同样的结果
这是一个Bug吗?

Mar*_*n R 19
简短回答:要获得所有没有"正确== 1"的"回答"的对象,请使用以下子 参数:
[NSPredicate predicateWithFormat:@"SUBQUERY(answers, $a, $a.correct == 1).@count == 0"]
Run Code Online (Sandbox Code Playgroud)
说明:两个谓词
[NSPredicate predicateWithFormat:@"NONE answers.correct == 1"]
[NSPredicate predicateWithFormat:@"NOT (ANY answers.correct == 1)"]
Run Code Online (Sandbox Code Playgroud)
应该工作(因为我理解NOT和ANY关键字),但他们没有.它们返回相同的结果集
[NSPredicate predicateWithFormat:@"ANY answers.correct != 1"]
Run Code Online (Sandbox Code Playgroud)
通过设置launch参数-com.apple.CoreData.SQLDebug 3和检查SQL select语句可以看出.
这对我来说似乎是一个核心数据错误.使用SUBQUERY是解决该问题的方法.
| 归档时间: |
|
| 查看次数: |
2046 次 |
| 最近记录: |