Apple Documents 说“如果上下文已经包含从 fetch 返回的对象的托管对象,则在 fetch 结果中返回现有的托管对象”
我的问题是,如果我在上下文中更新了对象但尚未保存上下文,那么 Fetch Request 将返回什么对象?从 Context 更新对象或从 Datastore 新建一个。
你的报价回答了这个问题;它将是记忆中的那个。随之而来的警告是,如果您创建一个新的NSManagedObjectContext
并在该上下文上执行获取请求,您将从数据存储中获取对象。
这取决于includesPendingChanges
获取请求的设置。默认情况下,
includesPendingChanges
is YES
,这意味着 fetch 将获得当前未保存的更改。
但是,如果您将NSDictionaryResultType
结果类型用于获取请求,这隐含地暗示includesPendingChanges = NO
,您将仅从存储中获得结果。
我猜它会从 Context 返回更新的对象。
注意:由于声誉低下,我必须作为答案。