在CoreData中使用谓词获取数据时,我遇到了一个奇怪的问题。由于某种原因,该谓词没有过滤数据库上的最新更改。
我已经尝试在获取之前调用 save(),但是问题一直在发生。
我的谓词是:
(lldb) po fetchRequest.predicate!
update_device == "AAA"
我得到的结果是:
(lldb) po (self.moc.fetch(fetchRequest) as! [Item]).map({$0.update_device!})
▿ 3 elements
- 0 : "AAA"
- 1 : "AAA"
- 2 : "BBB"
所以最后一个没有意义:
- 2 : "BBB"
如果我调用 self.moc.refreshAllObjects(),则最后一项将进入原始数据“ AAA”。
如果我在项目上选中 isUpdated ,它会返回 false
谢谢。