我在启动应用时遇到数据导入问题。在第一次启动时,我创建了很多核心数据对象(几乎 400 个对象)。问题是,当我在模拟器中尝试应用程序时,一切似乎都是正确的,但在设备上,由于我的导入,我不得不等待很多时间,也许应用程序崩溃(不是每次都崩溃)。
有人遇到过这个问题吗?我应该尝试使我的导入脚本更高效吗?是否存在一些关于使用 Core Data 导入数据的良好做法?
非常感谢提前!
我通常使用与 Gopal 相同的技术。除了文件大小之外,我遇到的唯一缺点是您在发送的数据中发现错误。如果发生这种情况并且您需要修复数据,则需要确定用户数据中是否存在不良数据并进行更新。我在启动时通过检查应用程序的 NSUserDefaults 中的 didUpdateToVersionX 值、查询用户数据存储以查找错误记录、更新相关对象、保存存储和设置偏好标志来处理此问题。
您的种子数据是用户可编辑的还是只读的?如果它是只读的,您应该能够拥有单独的只读和用户可写存储(前者在应用程序包中,后者在 Documents 目录中)。Marcus Zarra在回答另一个问题时对这种技术做了一篇很好的文章。根据您的设置,它可能涉及一些额外的工作。我想将上述应用程序切换到使用这种技术,但我从来没有机会。
我通常捆绑在应用程序本身中具有初始数据的 sqlite 文件。在应用程序启动时,检查 db 文件是否存在,如果不存在,则将其从捆绑包复制到文档目录或任何位置。
以增加应用程序大小为代价加快启动时间。