NSFetchRequest谓词正确查询,但导致NSManagedObject显示不正确的字段

时间:2016-12-20 17:14:08

标签: core-data nspredicate nsmanagedobject nsfetchrequest

我在核心数据中有一个Category实体,其中包含一个布尔属性deleted。例如,保存了3个,deleted设置为false,1个true

当我运行一个简单的查询时:

let fetchRequest: NSFetchRequest<NSFetchRequestResult> = NSFetchRequest(entityName: "Category")
fetchRequest.predicate = NSPredicate(format: "deleted == %@", NSNumber(booleanLiteral: false))
let results = try managedContext.fetch(fetchRequest) as! [NSManagedObject]

它正确地返回3,deleted设置为false。如果我反转谓词,它只会正确返回deleted设置为true的谓词。到目前为止,非常好。

但是,如果我使用NSPredicate(value: true)运行它以获取所有存储的Category个实体,然后打印结果,我会看到每个结果都有deleted = 0属性。

显然,实际数据库有3个实体保存为false,一个保存为true,因为查询返回了预期的对象。那么返回的结果不能正确显示这些字段的原因是什么呢?

0 个答案:

没有答案