CloudKit Получить актуальный объект из идентификатора записи в OSX

Я пытаюсь использовать CKSubscription, чтобы подписаться на изменения. Я слежу за документами Apple, которые кажутся очень общими и неполными. Ссылка на Apple Doc

У меня есть пункт получения идентификатора записи, отправленного в мое приложение через didReceiveRemoteNotification метод в AppDelegate и у меня есть мой идентификатор записи: используя этот код:

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, которые мне просто нужно привести.

1 ответ

Решение

Похоже, я решил это.

Уведомление только позволяет вам знать, что они изменились. Вы должны сделать работу, чтобы получить новые записи и обновить их. (Имеет смысл действительно)

privateCloudDatabase (). fetchRecordWithID (recordId!, завершение, гандлер: { (запись извлечена, ошибка) в

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

// Я, вероятно, должен добавить дополнительную проверку, но выше просто иллюстрирует решение и то, как просто это получить.

Другие вопросы по тегам