1

我最近一直在查看 iPhone 的 Core Data,我有一个查询,我无法在文献中找到答案。

让我们想象一下,我有一个User模型对象,它与Purchase对象具有一对多关系。一个用户可能有数千次购买。

到目前为止,我所看到的所有信息似乎都表明,跨该关系执行的 fetch 操作将返回一个 NSSet,其中包含与特定User关联的所有Purchase对象。

显然,如果有某种方法可以限制通过以下方式获取的Purchase对象的数量,我更愿意:

1) 强加某种标准(例如仅购买超过 1000 英镑等);或者

2) 仅在上述情况不可行的情况下分批获取。

以上可能吗?我只是担心 iPhone 的内存有限,我可能会冒着让成千上万个不必要的对象超载它的风险。

提前感谢您的任何回复。

4

2 回答 2

2
  1. 使用获取的属性
  2. 采用NSFetchedResultsController

这些问题的答案以及您接下来会遇到的问题都在iPhone的核心数据编程指南中得到了解答。

于 2009-11-25T21:52:37.260 回答
1

我的理解是,当您获取 User 对象时,与其 Purchase 对象的关系将是一个错误,只有在访问时才会加载。
相反,您可以使用指定用户的谓词获取购买对象并检查任何其他条件。

也就是说,在花太多时间在性能问题上之前,我肯定会测试实际的用例(在设备上)。iPhone 和 Core Data 的效率可能会让你大吃一惊。

于 2009-11-25T21:52:51.037 回答