2014-10-05 115 views
0

我在保存和查詢CloudKit中的記錄方面有很多初始成功。現在我陷入了一件容易的事情。對於每個用戶,我想保存他的CloudKit用戶ID,以便他們可以查看其保存記錄的列表。如何在保存CloudKit記錄後保存用戶ID

我認爲completionHandler提供了保存的記錄,填充了有用的元信息。這是我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) 

然而,在之後的第一行,如果(從「無功... 「)我收到以下錯誤消息:」致命錯誤:意外地發現零而解包可選值「。我不明白爲什麼這是零。

請幫助: 1.解釋我做錯了什麼 2.有關保存用戶ID以供將來查詢使用的任何提示。

謝謝!

回答

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)") 
      } 
     }) 
相關問題