使用OSX应用程序和iOS应用程序的SharedCoreData

时间:2014-03-06 18:05:29

标签: ios objective-c macos core-data icloud

我使用的是https://github.com/jab5990/TestCDiCloud.git的源代码。显然,此源代码是来自WWDC 2012 Session#227的示例代码,名为使用带有核心数据的iCloud 。原始源代码似乎不再在Apple的网站上提供。

我是Core Data的新手,我在这些概念上做了很多努力。情况是,当两个应用程序都在运行时,数据不会刷新:

inconsitiency

  1. 我将数据添加到我的mac app(第2行第2行)
  2. 我在模拟器中启动iPhone 7应用程序(登录iCloud后)
  3. 来自mac的条目显示
  4. 我向mac app添加了更多数据
  5. 几分钟后数据不会显示
  6. 因此,在iPhone应用程序的DetailViewController.m:204上注册了通知NSPersistentStoreDidImportUbiquitousContentChangesNotification,这应该意味着应该合并Mac应用程序的更改。

    如何确保数据保持同步。

2 个答案:

答案 0 :(得分:1)

在模拟器中,有时你需要使用Debug - >触发iCloud Sync菜单以触发同步。它不像iOS设备那样自动化。

如果您遇到问题,请尝试这些示例应用,其中包括处理iCloud帐户交换机的代码,从本地迁移到iCloud,备份,在iCloud中存储和提取备份文件等等。

http://ossh.com.au/design-and-technology/software-development/sample-library-style-ios-core-data-app-with-icloud-integration/

顺便说一句wwdc2012会话已经过时了,所以我会看一下最新的wwdc2013会话207视频,了解iOS7,OSX 10.9中已经发生变化的事情

答案 1 :(得分:0)

iCloud可能需要相当长的时间来传输文件,然后核心数据框架必须绕过实际导入文件。因此,延迟几分钟甚至更长时间并非闻所未闻。

您可以使用Xcode触发与Debug菜单的同步。这可能有所帮助。否则,您可能只需等待,或者可能退出并重新启动应用程序。

欢迎来到iCloud调试的精彩世界。