2010-02-04 80 views
1

对于必须有一组数据的插入,用户可以做之前首先推出自己的事情的iPhone应用程序,哪里是正确的位置(在代码)以插入数据?我正在查看几张表格之间的700-800条记录。在核心数据存储中初始化数据的适当位置在哪里?

我最初尝试在applicationDidFinishLaunching:这样做。这对iPhone 3gs运行良好,但导致3g一致的首次启动崩溃。在深入研究这个问题后,我发现在3G上,应用程序响应速度不够快(大概是因为它忙于将大量数据转储到持久性存储中),所以操作系统在假设它没有响应的情况下将其杀死。

要解决这个问题,我提出的数据初始化处理出appdidfinishlaunching的并从所述第一视图控制器示出在启动后产生了另一个线程。这工作的大部分时间,但每过一段时间有134030误差在核心数据,而根据苹果常数参考,应用程序崩溃是:

NSPersistentStoreSaveError

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

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

回答

5

理想实现发展的最后,你会填充这个数据到核心数据存储,并添加到您的项目。首次运行时,您可以将应用程序包中的该存储作为用户的Core Data存储复制。这应该适用于你的情况。

在无法做到这一点的情况下,人们会在后台线程执行导入。

+1

优秀的解决方案,它非常有意义。一位智者曾经告诉我,我患上了“瘫痪的分析”,这意味着我常常忽视因过度分析问题:) 感谢一束最简单的解决方案! – jtrim 2010-02-04 19:51:31