0

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」は、永続的な objectID を取得するためにも使用されます (obtainPermanentIDsForObjects を参照)。

「newObjectIDForEntity」が何をするのか知りたいです。同じオブジェクトの新しいインスタンスを作成しますか、それとも毎回内部的に新しいオブジェクトを作成しますか? つまり、新しいマネージド オブジェクトを作成してからそのオブジェクトを取得すると、同じオブジェクトに対して "newObjectIDForEntity" を 2 回呼び出すことになります。コア データは現在、1 つまたは 2 つのオブジェクトがあると考えていますか?

4

1 に答える 1