CloudKit 从 OSX 中的记录 ID 获取实际对象

CloudKit Get actual Object from Record ID in OSX

我正在尝试使用 CKSubscription 来订阅更改。我正在关注 Apple 的文档,这些文档似乎非常笼统且不完整。 Link to Apple Doc

我已经知道要通过 AppDelegate 中的 didReceiveRemoteNotification 方法将记录 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 中的实际对象?我是否需要执行另一次获取,或者我只需要 Cast.ckNotification 中包含的数据。

看来我解决了。

通知仅让您知道它们已更改。您需要完成提取新记录并更新它们的工作。 (真的有道理)

privateCloudDatabase().fetchRecordWithID(recordId!, completionHandler: { (recordfetched, error) in

            //Check the Record Type if multiple.. I only have one type.
   let myRecordType = recordfetched?.recordType
            let myObject = mySuperObject(record: recordfetched!)
            print("done")
        })

// 我可能应该添加更多可选检查 - 但上面只是说明了解决方案以及获得它是多么简单。