在核心数据存储中初始化数据的适当位置在哪里?

时间:2010-02-04 19:21:24

标签: iphone core-data initialization

对于必须在用户首次启动之前插入一堆数据的iPhone应用程序,插入该数据的正确位置(在代码中)在哪里?我看几张桌子之间的记录总数在700到800之间。

我最初尝试在applicationDidFinishLaunching:中进行此操作。这适用于iPhone 3gs,但在3g上造成了一致的首次发射崩溃。在深入研究问题之后,我发现在3g上,应用程序的响应速度不够快(大概是因为它忙于将大量数据转储到持久性存储中),因此操作系统在假设没有响应的情况下将其杀死。

为了解决这个问题,我将数据初始化过程从appdidfinishlaunching中移出,并从启动时显示的第一个视图控制器生成另一个线程。这大部分时间都可以工作,但每隔一段时间,应用程序就会因核心数据中出现134030错误而崩溃,根据苹果常量引用,该错误是:

  

NSPersistentStoreSaveError

     

错误代码,表示持久性存储为保存操作返回了错误。此代码适用于权限问题等错误。

在managedObjectContext上调用save:时会弹出此错误。

1 个答案:

答案 0 :(得分:5)

理想情况下,在开发结束时,您会将此数据填充到Core Data存储中并将其添加到项目中。首次运行时,您将该应用程序包中的该商店作为用户的Core Data商店进行复制。这适用于你的情况。

如果无法做到这一点,可以在后台线程上执行导入。