Iphone 在核心数据存储中初始化数据的正确位置在哪里?

Iphone 在核心数据存储中初始化数据的正确位置在哪里?,iphone,core-data,initialization,Iphone,Core Data,Initialization,对于一个iPhone应用程序来说,在用户第一次发布之前必须插入大量数据,那么代码中插入这些数据的正确位置在哪里?我在看几个表之间总共有700-800条记录 我最初尝试在ApplicationIDFinishLaunching:中执行此操作。这在iPhone3GS上运行良好,但在3g上造成了一致的首次发布崩溃。在深入研究这个问题之后,我发现在3g上,应用程序的响应速度不够快,可能是因为它正忙于将大量数据转储到持久性存储中,所以操作系统在假定它没有响应的情况下杀死了它 为了解决这个问题,我将数据初始

对于一个iPhone应用程序来说,在用户第一次发布之前必须插入大量数据,那么代码中插入这些数据的正确位置在哪里?我在看几个表之间总共有700-800条记录

我最初尝试在ApplicationIDFinishLaunching:中执行此操作。这在iPhone3GS上运行良好,但在3g上造成了一致的首次发布崩溃。在深入研究这个问题之后,我发现在3g上,应用程序的响应速度不够快,可能是因为它正忙于将大量数据转储到持久性存储中,所以操作系统在假定它没有响应的情况下杀死了它

为了解决这个问题,我将数据初始化进程移出了appdidfinishlaunching,并从启动时显示的第一个视图控制器生成了另一个线程。这在大多数情况下都有效,但每隔一段时间,应用程序就会崩溃,核心数据出现134030错误,根据apple constants参考,这是:

NSPersistentStoreSaveError

错误代码,表示持久存储返回了保存操作的错误。此代码与权限问题等错误有关


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

理想情况下,在开发结束时,您可以将此数据填充到核心数据存储中,并将其添加到项目中。在第一次运行时,您可以将应用程序包中的存储复制为用户的核心数据存储。这应该适合你的情况


在不可能的情况下,可以在后台线程上执行导入。

理想情况下,在开发结束时,您可以将此数据填充到核心数据存储中,并将其添加到项目中。在第一次运行时,您可以将应用程序包中的存储复制为用户的核心数据存储。这应该适合你的情况


在不可能的情况下,可以在后台线程上执行导入。

这是一个非常好的解决方案,非常有意义。一位智者曾经告诉我,我因分析而瘫痪,这意味着我经常因为过度分析问题而忽略最简单的解决方案:多谢!非常好的解决方案,而且非常有意义。一位智者曾经告诉我,我因分析而瘫痪,这意味着我经常因为过度分析问题而忽略最简单的解决方案:多谢!