objective-c - NSFetchRequest setPropertiesToGroupBy : return all entities that match? 是否

标签 objective-c ios cocoa-touch macos core-data

我正在开发一个 iOS 应用程序,但我找不到太多关于新的 NSFetchRequest setPropertiesToGroupBy: 方法的文档。

我有一堆实体 A 对象,它们与多个实体 B 对象有关系。

我想获取与特定模式匹配的所有实体 B 对象,并按实体 A 对它们进行分组。这样我就不必为每个实体 A 进行单独的数据库获取。理想情况下,结果将被结构化,以便我可以迭代相同实体 As 的组,然后使所有实体 B 与一个获取请求中的模式匹配。

我可以看到 setPropertiesToGroupBy: 方法应该让我按逆 B->A 关系进行分组,并返回一个 NSDictionaries 数组。但这是否意味着 NSArray 中的每一项都对应于实体 A 的一组?并且可以在 NSDictionary 中的某个位置找到相应的 NSManagedObject 子类?

最佳答案

不,没有。有两种方法可以做到这一点:

  • 使用多个请求
  • 有一个请求获取所有 A 实体,其中逆 A->B 关系位于一组 B 中。然后添加一个 NSSortDescriptor 以按 B 排序并将结果分成几组。

后者可能更快,因为内存中的分割避免了重复的数据库访问和获取请求解析。

关于objective-c - NSFetchRequest setPropertiesToGroupBy : return all entities that match? 是否,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8875868/

相关文章:

ios - 重新加载部分而不重新加载部分标题

objective-c - 键盘关闭和 UITableView 触摸问题

ios - 允许用户在 React Native 中更改 App 图标

ios - 在 Realm 对象中交换元素

iphone - 如何创建多阶段 UIImageView 动画?

cocoa-touch - 在哪里可以找到 NSDateFormatter 可用的格式字符串模式表?

iphone - 防止 sqlite 转义反斜杠

ios - NSMutableArray addObject 在设备中崩溃但在模拟器中运行良好

ios - 将 NSNumber 保存在 plist 中,不起作用

iOS 如何检测应用程序何时从进程中删除