gpt4 book ai didi

cocoa - NSPredicate with boolean 并不是将 bool 值与 NO 进行比较

转载 作者:行者123 更新时间:2023-12-03 16:02:41 25 4
gpt4 key购买 nike

我正在使用 CoreData,我的实体有一个名为“isReward”的 bool 属性。

我正在尝试获取实体并过滤掉 isReward == YES 的所有结果。

isReward != YES 不起作用。

isReward == NO 不起作用。

NSPredicate predicateWithFormat:"isReward != %@", [NSNumber numberWithBool:YES]] 不起作用

isReward == Nil 有效。

什么给出了?

最佳答案

我猜你会想要:

[NSPredicate predicateWithFormat:@"isReward = NO OR isReward = nil"]

(根据 Apple 文档 here ,与 NO 直接比较应该是有效的。)

一般来说,在数据方面与 null/nil 进行比较时,null == false 的计算结果为 false null != false 计算 false。与 null 的比较通常评估为 false,除非测试 IS NULL

我还想说,当您搜索平等而不是不平等时,索引通常会为您提供更好的结果。在您的情况下,重构起来相当简单(尽管我不确定这对核心数据总体来说是否重要)。

此外,如果您希望它始终为 YESNO(并跳过对 nil 的检查),则需要明确将默认值设置为NO

但是,在您的应用程序显式设置它之前,将其保留为nil可能会具有一些语义值(value)。这实际上取决于您想要做什么。

关于cocoa - NSPredicate with boolean 并不是将 bool 值与 NO 进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7209941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com