1

假设我插入了 10.000 个 Book 实体和 10.000 个 Author 实体,并且需要在它们之间设置一对一的关系。这两个实体都有一个名为 bookID 的属性。我这样做:

  1. 获取所有书籍,按 bookID 排序
  2. 获取所有作者,按 bookID 排序
  3. 枚举书籍数组,如果 currentBook.bookID == currentAuthor.bookID,则 currentBook.author = currentAuthor。对所有书籍重复此操作。在刚刚设置关系的每 1000 本书中,保存上下文(否则会消耗更多内存)。

我的问题是内存分配过度。我该如何限制呢?我尝试了 [fetchRequest setBatchSize:], setFetchLimit: 与 setFetchOffset: 结合使用,但没有成功。

4

1 回答 1

0

我认为您没有正确地概念化您的数据模型。属性“bookID”实际上不应该在作者实体中。在这两种方式中建立一对一的关系似乎也很奇怪。您更有可能希望从 Author 到 Book 建立一对多的关系(一个作者可以写多本书),甚至可能还有一个相反方向的一对多关系(一本书可能有多个作者,尽管这取决于您)。

于 2012-05-04T20:42:35.127 回答