IOS/目标 C:Coredata NSPredicate 与布尔值

Posted

技术标签:

【中文标题】IOS/目标 C:Coredata NSPredicate 与布尔值【英文标题】:IOS/Objective C: Coredata NSPredicate with boolean 【发布时间】:2017-06-27 21:36:53 【问题描述】:

我在 Coredata 中有一个名为“hide”的布尔属性。在nsmanagedobject 文件中,变量是NSNumber

@property (nonatomic, strong) NSNumber *hide;//bool

在某些情况下,我想排除或“隐藏”隐藏值为 1 的项目。 我为此使用的谓词是:

hideClause = @"hide != 1";
hidePred =  [NSPredicate predicateWithFormat:hideClause];

但是,逻辑未按预期工作。即使我确定 hide 的值不是 1,FRC 也不会返回项目。

谁能看出哪里出了问题?

【问题讨论】:

***.com/a/8784043/1801544 ? 【参考方案1】:

使用下面的谓词:

hidePred = [NSPredicate predicateWithFormat:@"hide != %@", [NSNumber numberWithBool:YES]]

【讨论】:

试过但没有运气。结果相同。 试试 [NSPredicate predicateWithFormat:@"NOT (hide == %@)", [NSNumber numberWithBool:YES]]

以上是关于IOS/目标 C:Coredata NSPredicate 与布尔值的主要内容,如果未能解决你的问题,请参考以下文章

iOS 上的加速度计丢失数据点(目标 C)

如何解决 AppDelegate 中的 coreData 错误?

iOS - 将 sqlite 复制到 CoreData 的捆绑包

唯一性约束功能需要 ios 部署目标 9.0 或更高版本 - Core Data

目标 c - 核心数据:无法调用 NSManagedObject 子类的私有方法

iOS swift:使用 coredata (cloudkit) 存储缓存