【发布时间】:2015-01-19 09:53:53
【问题描述】:
我正在使用一些具有关系的 ManagedObjects:客户有很多任务。
在服务器更新期间,我需要更新一些客户并删除一些任务。
显然由于删除了一个任务,相应的客户正在更新。 我调试了它,我可以在 Context 的 updatedObjects 集中找到 Customer。
现在我需要使用 NSPredicate (customerId == 123) 和 FetchRequest 搜索特定客户。 问题是这个请求没有返回结果。很明显是因为客户变了。
这一切都在一种事务中运行,所以我不想保存删除任务和搜索客户之间的上下文。
我做错了什么?或者我该如何处理这种情况?在通过 NSFetchRequest 搜索之前,我可以在上下文中迭代 updatedObjects,但我认为这不是一个好的解决方案?!
【问题讨论】:
-
获取应该返回更新的客户,即使它尚未保存。您的谓词是否仅引用 customerId?删除任务不应该影响customerId(除非关系的删除规则是“级联”)所以我认为你的问题可能更多地与谓词有关。
-
不,提取不会返回任何内容。是的,谓词只有“customerId = 123”。
标签: ios objective-c iphone core-data nsmanagedobjectcontext