每次应用加载时,MagicalRecord 都会删除所有创建的对象

Posted

技术标签:

【中文标题】每次应用加载时,MagicalRecord 都会删除所有创建的对象【英文标题】:MagicalRecord is deleting all the created objects each time app loads 【发布时间】:2013-07-04 21:16:25 【问题描述】:

我不太确定发生了什么,但每次我的应用程序在 ios 模拟器中加载时,使用 MagicalRecord 保存在我的应用程序中的数据都会被删除并重新创建。也许这意味着数据没有被持久化?

我不知道发生了什么。在我的应用委托中,我有:

[MagicalRecord setupCoreDataStackWithAutoMigratingSqliteStoreNamed:@"HFDatabase.sqlite"];

在我的 didFinishLaunching... 方法以及 applicationWillTerminate 方法中的 [MagicalRecord cleanUp]; 中。该日志还输出以下内容:

Context DEFAULT is about to save. Obtaining permanent IDs for new 20 inserted objects

我认为这意味着正在保存数据。然而,它每次都重新创建数据。有什么想法吗?

更新

每次我重建应用程序时,它似乎只是删除了数据库。这应该发生吗?有什么办法可以阻止这种情况发生?

【问题讨论】:

这不应该发生。 - 您是否有任何代码可以创建一些初始数据库(或从应用程序包中复制它)?也许该代码会覆盖现有数据库。 我只有一个数据模型文件。 @MartinR 看起来好像我需要调用saveNestedContexts 但是该方法已被弃用。不确定现在的最佳做法是什么。 【参考方案1】:

从您的 cmets 看来,您缺少保存方法。更改后执行[localContext MR_saveToPersistentStoreAndWait];

【讨论】:

以上是关于每次应用加载时,MagicalRecord 都会删除所有创建的对象的主要内容,如果未能解决你的问题,请参考以下文章

MagicalRecord 重新启动应用程序时删除核心数据存储

P5270 无论怎样神树大人都会删库跑路

每次访问页面时都会触发地理位置代码,而不仅仅是在初始加载或刷新时

使用 MagicalRecord 截断所有应用程序关闭后不保存

UITabBarController 每次加载时高度都会降低

每次重新加载后,Node.js Web 应用程序 chrome 内存使用量都会增加