0

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 ...」で始まる) で、次のエラー メッセージを受け取りました。これがゼロである理由がわかりません。

助けてください: 1. 私が間違っていることを説明してください。 2. 将来のクエリで使用するためにユーザー ID を保存するためのヒント。

ありがとう!

4

1 に答える 1

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)")
            }
        })
于 2014-10-05T21:37:43.120 に答える