我已经开始使用 NSIncrementalStore。当你处理一个获取请求时,你首先必须处理谓词来获取你的内部引用对象。然后将这些转换为 objectID,然后询问上下文以获取相应的 managedObjects。至少这是我对可用文档的解释。
let fetchedReferences : [Int] = Array(names.keys) //names represent my backingstore
var fetchedObjectIDs : [NSManagedObjectID] = []
for reference in fetchedReferences
{
fetchedObjectIDs.append(self.newObjectIDForEntity(request.entity, referenceObject: reference))
}
var fetchedObjects : [NSManagedObject] = []
for objectID in fetchedObjectIDs
{
fetchedObjects.append(context.objectWithID(objectID))
}
"newObjectIDForEntity" 也用于获取永久对象 ID(请参阅 gainPermanentIDsForObjects)
我想知道“newObjectIDForEntity”的作用。它是为同一个对象创建一个新实例,还是每次在内部创建一个新对象?我的意思是:如果我创建一个新的托管对象然后获取该对象,我将为同一个对象调用两次“newObjectIDForEntity”。核心数据现在认为有 1 或 2 个对象吗?