2016-08-17 2 views
0

Я пытаюсь использовать подписку CKS для подписки на изменения. Я следую документам Apple, которые, как представляется, очень общие и неполные. Link to Apple DocCloudKit Получить фактический объект из идентификатора записи в OSX

Я получил точку получения Индентификационный послал мое приложение с помощью метода didReceiveRemoteNotification в AppDelegate и я получил свою запись 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 в фактический объект I хранится в Cloudkit? Нужно ли выполнять другую выборку или данные, содержащиеся в CKNotification, которые мне просто нужны для Cast.

ответ

0

Похоже, я справился.

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

privateCloudDatabase() fetchRecordWithID (RecordId !, completionHandler: {(recordfetched, ошибка) в

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

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

Смежные вопросы