【发布时间】:2014-07-24 10:00:13
【问题描述】:
我有一个我认为是相对复杂的数据模型,为了获得我想要的功能,需要多个多对多关系。没有 iCloud,一切都很好:CPU 低,内存使用量通常在 15 mb/s 左右,最大为 30。
我已经按照 Tim Roadley 在此处找到的非常有用的教程实现了基本的 iCloud 核心数据同步 http://timroadley.com/2012/04/03/core-data-in-icloud/
-
第一个问题:首次打开应用时,有时会出现无法访问存储数据的延迟。我做了一个
NSFetchRequest并取回一个空数组。几秒钟后,我可以检索数据。为什么会这样?我认为在 Xcode 5 中启用 iCloud 后,会创建两个数据存储,一个用于本地使用,一个用于 iCloud 使用?本地商店不应该可以访问吗?
我已经通过使用“门户”视图控制器解决了第一个问题,因此可以(在大多数情况下)克服滞后(有时您会看到空白的 TVC.. 不高兴)
-
第二个问题,也是更紧迫的一个问题:几秒钟后(通常大约 15 秒),后台线程中发生了一些事情,CPU 使用率飙升至 99%,内存从 10 上升到大约 100 mb/s。它仍然那么高——它不会上升(也不会崩溃),并且在剩余的使用时间里也不会下降(我的意思是至少我已经让它持续运行了 2 个小时)。没有崩溃!只是有点滞后的界面交互。
为什么会发生这种情况,我该如何解决?
我对 iCloud 同步的工作原理不是很了解;以某种方式制作事务日志,存储为 plist,然后发送到某个地方,然后发生了一些事情。我假设我拥有的事务日志非常大 - 也许是由于我拥有的几个多对多关系?这个问题暗示了(他的问题没有解决方案,而且我也没有不断增加的内存使用量:我的停在某个点): Core Data with iCloud causing low memory warnings and crashes, memory usage constantly grows
想法: - 如果是事务日志,它们不应该在某个时候被删除吗?说在日志上传到 icloud 之后?为什么它只是坐在那里占用空间? - 有没有办法定义同步完成的时间?还是手动删除事务日志?有没有人经历过这个/解决了它?
【问题讨论】:
-
听起来是时候打开 Instruments 应用了。
标签: ios core-data memory icloud