【发布时间】:2010-02-04 19:21:24
【问题描述】:
对于必须先插入大量数据才能让用户在首次启动时执行操作的 iPhone 应用,插入数据的正确位置(在代码中)在哪里?我正在查看几个表之间总共 700 到 800 条记录。
我最初尝试在applicationDidFinishLaunching: 中执行此操作。这在 iPhone 3gs 上运行良好,但在 3g 上导致了一致的首次启动崩溃。深入研究问题后,我发现在 3g 上,应用程序响应速度不够快(可能是因为它正忙于将大量数据转储到持久存储中),因此操作系统在假设它没有响应的情况下将其杀死。
为了解决这个问题,我将数据初始化过程从 appdidfinishlaunching 中移出,并从启动时显示的第一个视图控制器中生成了另一个线程。这在大多数情况下都有效,但每隔一段时间,应用程序就会因核心数据中的 134030 错误而崩溃,根据苹果常量参考,该错误是:
NSPersistentStoreSaveError
错误代码表示持久存储返回了保存操作的错误。此代码与权限问题等错误有关。
在 managedObjectContext 上调用save: 时会弹出此错误。
【问题讨论】:
标签: iphone core-data initialization