繁体   English   中英

将iOS / Mac应用程序与dame数据模型同步?

[英]Sync iOS / Mac app with dame data model?

我创建了一个使用核心数据(基本上是待办事项列表)的iOS应用。

我想创建一个OS X应用程序,该应用程序还将显示待办事项列表并与iOS设备同步。 我对iCloud atm不感兴趣(同步将使用蓝牙/内部网络),但是如果以后可以启用它会很好。

目前,我对OS X的开发几乎一无所知,但发现可以使用基于文档的应用程序和核心数据。 但是我必须复制iOS应用程序的xcdatamodel。 有什么方法可以共享数据模型? 是否可能需要使用与核心数据不同的内容? 我不想保留2个确切的副本...我也不想使用3d派对库(尽管欢迎提出建议作为评论)。 可能可以使用脚本解决此问题,但我想知道是否有更好的方法。

因此,问题是如何避免复制您的xcdatamodel,并且在您的iOS或OS X XCode项目/工作区中只有一个版本化的xcdatamodel并与另一个共享?

无论何时更改模型,都可以使用momc工具并将“ xcdatamodel”文件编译为“ momd”文件。 iOS / OS X App将在运行时仅加载“ momd”文件。 编译步骤如下所示:

/Applications/Xcode.app/Contents/Developer/usr/bin/momc <your project folder>/MyApplication/MyApplication/MyApplication.xcdatamodeld/MyApplication.xcdatamodel <your destination folder>/my.momd

现在,在应用程序的XCode项目中添加“ my.momd”作为新的捆绑包资源,而没有自己的模型。 选择目标设置,转到“构建阶段”,转到“复制捆绑资源”并添加“ my.momd”。

您需要相应地更改代码:

NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"my" withExtension:@"momd"];
_managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];

当然,“。xcdatamodeld”文件夹可以从应用程序项目中删除,而无需使用其自身的模型。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM