CloudKit订阅内部服务器错误

时间:2016-08-27 23:59:28

标签: xcode icloud cloudkit ios10

我正在尝试订阅iCloud更改,但我不断收到internal sever error。保存和支持来自iCloud的数据有效,但我无法获取或保存订阅。

任何人都知道可能是什么问题?

3 个答案:

答案 0 :(得分:0)

我发现了这个问题。在涉及错误时,CloudKit的记录非常糟糕。在尝试使用尚不存在的记录类型尝试订阅记录更改时,您会收到内部服务器错误。很奇怪,希望它能帮助将来的某个人!

答案 1 :(得分:0)

我还注意到,一旦遇到错误,后续对CloudKit的调用似乎无声地失败。也许它是正常的iOS行为,如果设置它我需要重置错误代码。也许其他人可以评论。

答案 2 :(得分:0)

在添加subscriptionID之前,订阅工作正常。然后我开始收到"内部服务器错误"。我正在使用这个功能:

let subscription = CKQuerySubscription(recordType: kActionFigureSpecificsRecord, 
   predicate: predicate, 
   subscriptionID: subscriptionId, 
   options: [.firesOnRecordCreation, .firesOnRecordUpdate, .firesOnRecordDeletion])
  

subscriptionID   订阅的唯一名称。该字符串在指定的数据库中必须是唯一的,并且不能为nil。

阅读完文档之后,我意识到subscriptionID需要是唯一的,尽管文档并没有特别清楚地表明相对于什么。我相信唯一的标准是关于其他数据库ID.names,例如其他recordID.recordName。我的subscriptionID字符串与用于相关记录的订阅的表的recordID.recordName具有相同的值。当我将_Subscription附加到subscriptionID字符串(即名称)时,订阅注册正常。