jtr*_*rim 1 iphone initialization core-data
对于必须在用户首次启动之前插入一堆数据的iPhone应用程序,插入该数据的正确位置(在代码中)在哪里?我正在看几张桌子之间的700到800条记录.
我最初尝试过这样做applicationDidFinishLaunching:.这适用于iPhone 3gs,但在3g上造成了一致的首次发射崩溃.在深入研究问题之后,我发现在3g上,应用程序的响应速度不够快(大概是因为它忙于将大量数据转储到持久存储中),因此操作系统在假设没有响应的情况下将其杀死.
为了解决这个问题,我将数据初始化过程从appdidfinishlaunching中移出,并从启动时显示的第一个视图控制器生成另一个线程.这大部分时间都可以工作,但每次偶然应用程序崩溃时核心数据中出现134030错误,根据苹果常量引用,它是:
NSPersistentStoreSaveError
错误代码表示持久性存储为保存操作返回错误.此代码适用于权限问题等错误.
调用save:managedObjectContext 时会弹出此错误.
理想情况下,在开发结束时,您可以将此数据填充到Core Data存储中并将其添加到项目中.首次运行时,您将该应用程序包中的该商店作为用户的Core Data商店进行复制.这适用于您的情况.
在无法做到这一点的情况下,可以在后台线程上执行导入.