如何解决设备之间CloudKit功能的不一致问题

时间:2015-12-14 16:51:09

标签: ios cloudkit

我已将CloudKit集成到我的iOS应用中,并且我遇到设备之间的功能不一致。

我的一位用户拥有iPod 5th Gen和iPhone 6.如果他们使用iPod,一切都按预期工作。但是,如果他们使用iPhone 6,他们只能接收数据和通知,他们无法对自己进行更改。当iPhone尝试对iCloud公共数据库进行更改时,我没有收到任何错误,并且在本地进行了更改,他们只是从未进入服务器(一切似乎都有效,但事实并非如此)。

鉴于用户可以成功使用iPod,但同样的iCloud帐户只接收iPhone上的数据,这表明这可能是权限或设置问题。

我查了一下:

  • 用户已登录iCloud
  • iCloud驱动器已开启
  • 应用程序在设置
  • 中的iCloud Drive菜单中启用
  • 该应用程序在“通过电子邮件查找”菜单
  • 下显示为已启用

其他细节:

  • 该应用程序可通过TestFlight
  • 获得
  • 该应用正在使用生产容器(TestFlight所需)

我不知道要提供什么代码,因为该应用程序在其他设备上按预期运行,但让我知道什么可以提供帮助。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:1)

通过将我的修改操作qualityOfService属性更改为.UserInitiated来解决此问题。

在我查看了我的CKModifyRecordsOperation的完成处理程序之后,我意识到我正在保存本地功能所需的数据,无论完成处理程序是否收到错误(顺便说一下,它是否被执行)。因此,当我觉得我的操作正在运行并且没有返回任何错误时,它实际上根本就没有运行。更改qualityOfService似乎已经解决了这个问题。

Answer that led to the solution