2014-10-05 3 views
0

У меня было много начальных успешных сбережений и запросов в CloudKit. Теперь я застрял на чем-то легком. Для каждого пользователя я хочу сохранить его идентификатор пользователя CloudKit, чтобы они могли просматривать список сохраненных записей.Как сохранить идентификатор пользователя после сохранения записи CloudKit

Я думал, что завершениеHandler предоставило сохраненную запись, заполненную полезной метаинформацией. Это начало моей completionHandler FUNC:

func recordSaved(record: CKRecord?, error: NSError?) { 

     if (record != nil) { 
      var myUserRecordID:CKRecordID = record!.creatorUserRecordID 
      let UserRecordIDToStore = NSKeyedArchiver.archivedDataWithRootObject(myUserRecordID) 
      plist.setValue(UserRecordIDToStore, forKey: "lastCKRecordID") 
     } 

Он вызывается, когда это сохранить действие закончено:

publicDatabase.saveRecord(newRecord, completionHandler: recordSaved) 

Однако, в первой строке после того, если (начиная с «вар ... ») Я получил следующее сообщение об ошибке:« Неустранимая ошибка: неожиданно найден nil при развертывании необязательного значения ». Я не понимаю, почему это ноль.

Пожалуйста, помогите: 1. Объясните, что я делаю неправильно 2. Любые советы по сохранению идентификатора пользователя для использования в будущем запросе.

Спасибо!

ответ

0

Ничего. Вот ответ (просто используйте его как отдельный код):

CKContainer.defaultContainer().fetchUserRecordIDWithCompletionHandler({ userRecordID, error in 
      if error == nil { 
       let UserRecordIDToStore = NSKeyedArchiver.archivedDataWithRootObject(userRecordID) 
       plist.setValue(UserRecordIDToStore, forKey: "userCKRecordID") 
       println("User identified as: \(userRecordID.description)") 
      } else { 
       println("Can not identify user due to error: \(error.localizedDescription)") 
      } 
     }) 
Смежные вопросы