我正在尝试使用CKSubscription订阅更改。我正在跟踪苹果的文档,这似乎是非常笼统和不完整的。指向Apple的链接
通过didReceiveRemoteNotification方法在AppDelegate中将记录ID发送给我的应用程序是有意义的,我已经获得了记录Id:使用以下代码:
func application(application: NSApplication, didReceiveRemoteNotification userInfo: [String : AnyObject]) {
let cknNotification = CKNotification(fromRemoteNotificationDictionary: userInfo as! [String:NSObject])
if cknNotification.notificationType == .Query,
let queryNotification = cknNotification as? CKQueryNotification {
let recordId = queryNotification.recordID
print(recordId)
}如何将CKNotification转换为我在Cloudkit中存储的实际对象?我是否需要执行另一次提取,还是只需转换CKNotification中包含的数据。
发布于 2016-08-17 13:20:56
看来我已经解决了。
通知只让您知道它们已经更改。你需要做的工作,以提取新的记录和更新。(真有道理)
privateCloudDatabase().fetchRecordWithID(recordId!,completionHandler:{(记录获取,错误)
//Check the Record Type if multiple.. I only have one type.
let myRecordType = recordfetched?.recordType
let myObject = mySuperObject(record: recordfetched!)
print("done")
})//我可能应该添加更多的可选检查--但上面只说明了解决方案以及获得的简单程度。
https://stackoverflow.com/questions/38996677
复制相似问题