【问题标题】:How to save User ID after CloudKit record savedCloudKit记录保存后如何保存用户ID
【发布时间】:2014-11-30 01:07:23
【问题描述】:

我在 CloudKit 中保存和查询记录有很多初步成功。现在我被困在一些简单的事情上。对于每个用户,我想保存他的 CloudKit 用户 ID,以便他们可以查看他们保存的记录列表。

我认为 completionHandler 提供了保存的记录,填充了有用的元信息。这是我的 completionHandler 函数的开始:

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)

但是,在 if 之后的第一行(以“var ...”开头)我收到以下错误消息:“致命错误:在展开可选值时意外发现 nil”。我不明白为什么这是零。

请帮助: 1.解释我做错了什么 2. 关于保存用户 ID 以供将来查询使用的任何提示。

谢谢!

【问题讨论】:

    标签: ios swift cloudkit


    【解决方案1】:

    没关系。这是答案(仅将其用作独立代码):

    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)")
                }
            })
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-07
      • 1970-01-01
      • 2018-03-01
      • 2014-08-27
      • 1970-01-01
      • 1970-01-01
      • 2014-12-28
      相关资源
      最近更新 更多