iOS 7 – CoreData Migration – Xcode 5
我在执行CoreData Migration时遇到了一个非常奇怪的问题.
基本上,我有2个实体,其中一个我添加一个属性,另一个,我将属性类型从NSString更改为NSArray(可转换). 如果我在Xcode 5上运行完全相同的代码(我不知道它是否与iOS SDK 7.0或Xcode 5相关),则会出现问题,但迁移会运行并破坏数据. 我最终创建了一个简单的项目来演示正在发生的事情. 重现的步骤是: 1 – 打开项目“BeforeMigration”并执行.查看创建的日志和数据,到目前为止没问题; 2 – 停止项目; 3 – 打开项目“AfterMigration”,构建并运行. 4 – 看到迁移已执行,但数据已损坏:
AFAIK,难以理解的存档意味着CoreData上的数据损坏. 很难理解的是,之前的代码完全相同,因此,如果它是一个逻辑问题,它应该发生在Xcode 4.5上.我找了CoreData Diffs,但没找到任何相关的东西. 如果有人知道可能是什么问题,我将不胜感激. 解决方法
在iOS 7中,Core Data SQLite存储的默认日记模式已更改为预写日志(WAL)以提高可靠性,性能和并发性.
问题是我没有使用核心数据移动-wal文件.修复它的一种方法是删除-wal使用: NSDictionary *options = @{NSSQLitePragmasOption:@{@"journal_mode":@"DELETE"}}; 或者移动-wal: - (NSPersistentStore *)migratePersistentStore:(NSPersistentStore *)store toURL:(NSURL *)URL options:(NSDictionary *)options withType:(NSString *)storeType error:(NSError **)error (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |