1

我正在使用 iOS 6.1 进行开发并通过 Core Data 进行工作。

在我正在学习的书中,“ iOS 的核心数据:为 iPad、iPhone 和 iPod touch 开发数据驱动的应用程序”,作者是 Isted 和 Harrington,他们正在讨论(第 170-1 页)如何将图像存储在Core Data 和我正在做一些非常相似的事情。

作者说了一些我不确定他在暗示什么的东西。引用:

您需要确保重新故障容器对象以避免将图像数据保留在内存中。

我认为这可能适用于我。

我有两种类型的对象;photoSm 和 photoLg。

每个 photoSm 对象中的图像很小(180x230),而相应(通过关系链接)photoLg 对象中的图像较大(720x920)。

我获取了整个 photoSm 对象组,它加载速度很快,我可以使用滑块在图像中来回缩放,没有明显的延迟。

如果用户停止移动滑块,则在短暂的暂停后会触发一个计时器,我会遵循从显示图像的 photoSm 对象到 photoLg 对象的关系,从而加载 photoLg 对象。加载后,我将 photoSm 对象显示的分辨率较低的图像替换为 photoLg 对象中分辨率较高的图像。

这一切都很好。

我想我已经读过,一旦我遵循从 photoSm 到 photoLg 和故障 photoLg 到内存的关系,它将无限期地保持下去。随着照片数量的增加,这可能会使内存变得混乱。

所以,我想知道如何将 photoLg 对象从内存中清除。或者像伊斯特德和哈灵顿所说的那样“重新指责”他们。

或者这可能只是一个红鲱鱼,Core Data 会在需要空间时自动重新出错?

4

1 回答 1

0

同一本书第 167 页,“refreshObject:mergeChanges:”会将其转换回故障对象。

于 2013-09-12T08:55:47.983 回答