首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSPersistentDocument和UIManagedDocument兼容吗?

NSPersistentDocument和UIManagedDocument兼容吗?
EN

Stack Overflow用户
提问于 2013-09-25 13:53:20
回答 2查看 1K关注 0票数 3

我想在Mac中创建一个NSPersistentDocument,并将此文档作为UIManagedDocument在iOS 7上阅读。

这个是可能的吗?

两种文件格式是否兼容?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-10-03 12:00:25

有趣的问题-我可以确认基本的核心数据文件是兼容的。我有一个Mac应用程序和一个iOS应用程序使用相同的文件,得到同步使用iCloud。该应用程序是一个基于文档的应用程序,目前我一直在iCloud中存储实际的数据库文件,所以整个文件由iCloud同步。

这很好,但是很明显,如果用户在两个设备上打开文件,并且在保存和关闭时不小心,那么它们的更改可能会被覆盖。

苹果已经批准了使用标准NSPersistentDocument创建和保存文件的Mac应用程序。不幸的是,他们拒绝了iOS应用程序的一些模糊引用,认为它们不符合数据存储准则,称文档如果需要备份到iCloud,就必须存储在/Documents目录中。如果用户选择了iCloud,那么我将文件存储在API调用提供的iCloud位置。

无论如何,我仍在等待他们的回复,因为这种方法似乎与页面和其他基于文档的应用程序使用的方法相同,因此有什么特别的问题。

如果我尝试使用UIManagedDocument,那么iOS将创建一个文件夹结构,并将数据库存储在这个文件夹结构中。然后,Mac ->Open对话框显示了这个文件夹结构,以及一个实质上看起来像普通sqlite文件的文件。但是也许OSX10.8.4没有实现最新的iCloud/Core数据--谁知道.

这里的编辑链接到代码示例和视频,显示OSX和iOS应用程序集成使用Core和iCloud。http://ossh.com.au/design-and-technology/software-development/uimanageddocument-icloud-integration/

票数 1
EN

Stack Overflow用户

发布于 2015-09-11 02:23:29

我同意这绝对是可能的。我在OSX10.8/10.9/10.10上使用NSPersistent文档和二进制核心数据格式(没有包装器-普通文件)。在iOS上,我使用UIDocument。在这两种环境中,核心数据都能正常工作。

苹果表示,NSPersistentDocument不支持iCloud。更正确的说法是它没有得到充分的支持。大多数NSDocument支持(包括10.8中的iCloud文档库访问)都能工作。在打开的作品中处理冲突的文件。

无法启用自动保存(在“iCloud设计指南”中将其作为iCloud文档的要求列出)。Autosave异步工作,NSPersistentDocument绝对不支持它。

因此,如果您处理文件保存和冲突,则可以使用NSPersistent文档。有一些怪癖:例如,如果在OS上对打开的文档进行iCloud更改,正常的NSDocument响应将自动重新打开文档。这种情况不会发生,并且在您准备保存该文件之前,没有任何警告文件已经更改。但至少有一个警告。在iOS上,使用UIDocumentStateChangedNotification更容易检测发生的更改。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19006882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档