iOS   发布时间:2022-05-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了iOS 7 – CoreData Migration – Xcode 5大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

我在执行CoreData Migration时遇到了一个非常奇怪的问题. 基本上,我有2个实体,其中一个我添加一个属性,另一个,我将属性类型从NSString更改为NSArray(可转换). 到目前为止,它非常好,运行良好,在迁移后进行了测试并且数据完整性完好无损. 如果我在Xcode 5上运行完全相同的代码(我不知道它是否与iOS SDK 7.0或Xcode 5相关),则会出现问题,但迁移会运行
我在执行CoreData Migration时遇到了一个非常奇怪的问题.

基本上,我有2个实体,其中一个添加一个属性,另一个,我将属性类型从NSString更改为NSArray(可转换).
到目前为止,它非常好,运行良好,在迁移后进行了测试并且数据完整性完好无损.

如果我在Xcode 5上运行完全相同的代码(我不知道它是否与iOS SDK 7.0或Xcode 5相关),则会出现问题,但迁移会运行并破坏数据.

我最终创建了一个简单的项目来演示正在发生的事情.
https://dl.dropboxusercontent.com/u/1393279/CoreDataMigration.zip

重现的步骤是:
– 在Xcode 5(iOS SDK 7.0)上,您可以使用模拟器 –

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

大佬总结

以上是大佬教程为你收集整理的iOS 7 – CoreData Migration – Xcode 5全部内容,希望文章能够帮你解决iOS 7 – CoreData Migration – Xcode 5所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。