0

管理された ID の配列を値として持つ特定のキーを使用して NSDictionary を構築し、キーが使用されたときにそれらのオブジェクトを取得したい場合、それらすべてのオブジェクトを読み込む方法はありますか、それとも読み込む必要がありますか?一つずつ?

例:

NSDict: "Apple" = NSArray[id1,id2,id3,etc...]

  1. どういうわけか、コアデータからすべての ID を一度にロードします (これにはどのような方法が使用されますか)

  2. それぞれを 1 つずつロードします (配列内の id など)。

4

1 に答える 1

2

管理対象オブジェクト ID の配列がある場合は、単一のフェッチ リクエストですべてのオブジェクトをフェッチできます。

NSArray *objectIDs = ...;
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"YourEntityName"];
fetchRequest.predicate = [NSPredicate predicateWithFormat:@"SELF IN %@", objectIDs];
NSArray *result = [context executeFetchRequest:fetchRequest error:&error];

ただし、result配列で返されるオブジェクトの順序は、提供されたオブジェクト ID の順序と同じである必要はありません。つまり、 がresult[i]ID のオブジェクトであるとは限りませんobjectIDs[i]

必要に応じて、この回答のコードを使用して、オブジェクト ID に従って結果の配列を並べ替えることができます: Sorting NSArray by NSOrderedSet

于 2013-03-28T16:14:24.587 に答える