大佬教程收集整理的这篇文章主要介绍了ios – UIManagedDocument只能读取文件包的文档,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我按照Apple的文档对其进行了子类化,并且在需要创建新的持久性存储文件时它可以正常工作.但是,当我尝试使用它打开我的旧持久存储文件时,我得到以下异常抛出错误:
“UIManagedDocument只能读取文件包的文档”
这是否意味着我需要将旧的持久性存储迁移到由UIManagedDocument管理的新商店?如果是这样,我是否需要手动执行此操作(即,从旧商店一次@L_197_7@地读取每条记录并将其写入新的记录中)?
提前致谢!
@H_373_20@mydocument.foo -> StoreContent -> persistentStore
您需要做的是为您的应用程序文件类型创建@L_197_7@新的扩展名,例如,如果您的数据库扩展名是.myappdb,则需要在项目设置中创建@L_197_7@可能是.myappdbw的新文档类型.您可以从.myappdb的条目中复制所有设置
接下来,您将处理在mydocumenturl上打开旧文档而不是将其传递给持久性存储协调器,从而创建上面的目录结构.
NSURL *newurl = [[mydocumenturl URLBydeletingPathExtension] URLByAppendingPathExtension:@"myappdbw"]; NSURL *desturl = [newurl URLByAppendingPathComponent:@"StoreContent"]; [[NSFileManager defaultManager] createDirectoryAtURL:desturl withIntermediateDirectories:YES attributes:nil error:NULL]; NSURL *finalurl = [desturl URLByAppendingPathComponent:@"persistentStore"];
[[NSFileManager defaultManager] moveItemAtURL:mydocumenturl toURL:finalurl error:NULL];
然后你可以将bundle url传递给UIManagedDocument
UIManagedDocument *doc = [[UIManagedDocument alloc] initWithFileURL:newurl];
http://developer.apple.com/library/ios/#releasenotes/DataManagement/RN-iCloudCoreData/_index.html
它有点神秘,因为大多数承诺的示例@L_675_23@到目前为止都没有出现,但另一方面它的演绎主要相当简单.有关更多提示,请查看WWDC2011会话107,116和315.
但请注意,如果您要使用此方法迁移旧文档,则DONT会在您迁移时设置NSPersistentStoreUbiquitousContentNameKey,因为此时包会更改.上面的文档很好地描述了它.
以上是大佬教程为你收集整理的ios – UIManagedDocument只能读取文件包的文档全部内容,希望文章能够帮你解决ios – UIManagedDocument只能读取文件包的文档所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。