在 iOS 和 OS X 之间共享 iCloud 核心数据

Posted

技术标签:

【中文标题】在 iOS 和 OS X 之间共享 iCloud 核心数据【英文标题】:Sharing iCloud Core Data between iOS and OS X 【发布时间】:2014-03-24 17:20:44 【问题描述】:

我应该为 ios 和 OS X 开发一个项目。显然我有 2 个不同的项目,我的问题是:这两个项目是否应该具有相同的 xcdatamodeld 以通过 iCloud 共享核心数据?意思是相同的结构还是完全相同(名称+结构)?我仍处于 OS X 应用程序的开始阶段,想提前知道是否必须导入 iOS 核心数据文件,或者我可以创建另一个。 提前致谢

【问题讨论】:

关于这个主题,您是否需要同时注册 iOS 和 Mac OS X 开发者计划才能通过 iCloud 共享数据? 对于 iOS 来说是这样,因为您需要在真实设备上进行测试才能访问 iCloud。我认为这也适用于 OS X,但我不确定,因为模拟器已经是你的系统。我遇到的这个问题是 U 的家庭作业,所以我没有进一步测试这个主题对不起。 【参考方案1】:

两个项目是否应该具有相同的 xcdatamodeld 以通过 iCloud 共享核心数据?

如果您想在两个项目之间共享数据存储,那么可以。在两个项目中使用相同的模型文件。

为 iOS 项目构建模型然后在简单的 OS X 项目中使用相同的模型文件的情况并不少见,这样您就可以轻松地检查或修改来自 MacOS X 应用程序的数据。

【讨论】:

谢谢,我需要:) 请特别注意:小心任何在两个平台上都不存在的类。例如。不要将 NSColor 放在可转换的属性中,也不要存储 NSAttributedStrings。存储与平台无关的值,例如 rgba 值。您可以为每个平台以不同的方式实现模型附加的 NSValueTransformer 类,或者只是将值转换为模型类中的本机对象。

以上是关于在 iOS 和 OS X 之间共享 iCloud 核心数据的主要内容,如果未能解决你的问题,请参考以下文章

使用 NSUbiquitousKeyValueStore 在 iOS 应用和 OSX 应用之间共享 iCloud 数据

在 OS X (Objective-C) 和 iOS (Swift) 之间共享代码

仅为 OS X 10.8.x 和 iOS 6.x 在 iCloud 中启用核心数据同步

在 Windows 和 iOS 之间共享文件时,从技术角度来看,iCloud 驱动器是如何工作的?

iOS 和 macOS 应用程序之间的 iCloud 核心数据共享不起作用

在使用 iCloud 的人之间共享任务列表