0

我想知道我是否使用某个键构建了一个 NSDictionary,该键具有一个托管 ID 数组作为值,并且想要在使用该键时提取这些对象,有没有办法加载所有这些对象或者我需要加载一次一个?

例子:

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

  1. 以某种方式一次从核心数据加载所有 id(以及用于此的方法)

  2. 一个一个地加载(对于数组中的 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 回答