Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将iOS/Mac应用程序与dame数据模型同步?_Ios_Macos_Core Data_Synchronization - Fatal编程技术网

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

将iOS/Mac应用程序与dame数据模型同步?,ios,macos,core-data,synchronization,Ios,Macos,Core Data,Synchronization,我制作了一个iOS应用程序,它使用核心数据,基本上是一个待办事项列表 我想创建一个OS X应用程序,它还将显示待办事项列表并与iOS设备同步。我对icloudatm不感兴趣(sync将使用蓝牙/内部网络),不过如果以后可以启用它就好了 目前我对OSX的开发几乎一无所知,但我发现我可以使用基于文档的应用程序和核心数据。但我必须复制iOS应用程序的xcdatamodel。有没有办法共享数据模型?我是否需要使用与核心数据不同的东西?我不想保留两份准确的副本。。。我也不想使用3d政党图书馆(尽管建议可以

我制作了一个iOS应用程序,它使用核心数据,基本上是一个待办事项列表

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


目前我对OSX的开发几乎一无所知,但我发现我可以使用基于文档的应用程序和核心数据。但我必须复制iOS应用程序的xcdatamodel。有没有办法共享数据模型?我是否需要使用与核心数据不同的东西?我不想保留两份准确的副本。。。我也不想使用3d政党图书馆(尽管建议可以作为评论)。也许这可以通过脚本来解决,但我想知道是否有更好的方法。

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

每当模型发生更改时,您都可以使用momc工具将“xcdatamodel”文件编译为“momd”文件。iOS/OS X应用程序在运行时仅加载“momd”文件。编译步骤如下所示:

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

当然,可以从应用程序项目中删除“.xcdatamodeld”文件夹,而不需要自己的模型。

假设您有两个iOS和OSX应用程序存储库。您可以创建第三个库(例如静态库),其中包含核心数据模型和NSManagedObject子类。然后您可以在两个存储库之间共享它。一个通用的项目/库可能是一个很好的解决方案,谢谢。只是想知道苹果是否不提供一些内置功能,因为这应该是多平台应用程序的常见要求。
NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"my" withExtension:@"momd"];
_managedObjectModel = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];