Chr*_*ker 15 cocoa core-data nspredicate
我正在使用CoreData,我的实体有一个名为"isReward"的布尔属性.
我正在尝试获取实体并过滤掉所有结果,其中isReward == YES.
isReward != YES 不起作用.
isReward == NO 不起作用.
NSPredicate predicateWithFormat:"isReward != %@", [NSNumber numberWithBool:YES]] 不起作用
isReward == Nil 作品.
是什么赋予了?
Ben*_*her 26
我猜你想要:
[NSPredicate predicateWithFormat:@"isReward = NO OR isReward = nil"]
Run Code Online (Sandbox Code Playgroud)
(根据这里的Apple文档,直接比较NO应该是有效的.)
在一般情况下,比较时null/ nil数据计算,null == false计算结果为false 和 null != false评估板false.null通常评估的比较false,除了测试时IS NULL.
我还会说,当您搜索相等而不是不等式时,索引通常会为您提供更好的结果.在您的情况下,这很容易重构(尽管我不确定它对核心数据一般是否重要).
此外,如果您希望它始终为YES或NO(并跳过检查nil),则需要将默认值明确设置为NO.
但是,在nil您的应用程序明确设置它之前,您可能会有一些语义值.这完全取决于你想要做的事情.
| 归档时间: |
|
| 查看次数: |
9474 次 |
| 最近记录: |