0

我有一个 Post 对象,它在其他属性旁边包含一个布尔值“隐藏”和一个可能很长的字符串“内容”。有一个与 Post 对象具有一对多关系(反向)的 Feed 模型。

当我查询 Feed 中包含的 Post 对象,然后只访问每个获取的 Post 对象的“隐藏”属性时,我可以从 Core Data 的调试日志中看到它获取整个 Post 对象的属性。这意味着“内容”字符串(通常超过 3000 个字符)也是从 SQLite 数据库中获取的。我发现这大大减慢了所有 Post 对象的获取速度。

如何使 Post 对象访问延迟加载它们的属性,这意味着当我查询获取的 Post 对象的“隐藏”值时,不会获取其他参数。

我可能会补充一点,我使用 MagicalRecord 来访问核心数据。

我希望除了在手动 NSFetchRequest 实例上使用“propertiesToFetch”方法之外,还有另一种方法。

4

1 回答 1

0

你读过Core Data Programming Guide 中的Faulting and Uniquing吗?
特别关注“Turning Objects into Faults”

您可以使用该方法将已实现的对象变成故障refreshObject:mergeChanges:

如果内存不是问题,而只是性能问题,您应该求助于NSDictionaryRepresentation类型并检索您需要的属性。

于 2013-11-04T11:05:08.730 回答