ios - 一次通过多个 id 搜索核心数据的优势与多个 id 背靠背搜索的优势

标签 ios core-data

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

例子:

NS字典: "Apple"= NSArray[id1,id2,id3,etc...]

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

  2. 一一加载(对于数组中的id...等) ?

最佳答案

如果您有一个托管对象 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 .

关于ios - 一次通过多个 id 搜索核心数据的优势与多个 id 背靠背搜索的优势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15685445/

相关文章:

ios - Facebook Graph Api的位置连接用户对象在ios-sdk中无法正确响应?

jquery - iOS 的 CSS 下拉菜单在单击和/或悬停时打开

iphone - 拆分 CoreData 以获得更快的查询时间

objective-c - 核心数据未更新,已更新模型

ios - UInavigationController 中使用异步代码的弱无主用法

objective-c - UIWebView 缩放页面,无需水平滚动

ios - 具有组合条件的 DynamoDB 查询/扫描

iphone - 如何将触摸事件传递给另一个对象?

swift - 如何将嵌套对象添加到核心数据中的现有对象

iphone - 如何在核心数据实体中手动添加数据