6

単純にレコードをユーザーのプライベート データベースに保存しようとしていますが、privateDB.saveRecord() を実行するとエラーが発生します。

Not Authenticated" (9/1002); "CloudKit access was denied by user settings"; Retry after 3.0 seconds>.

このアカウントは cloudkit ダッシュボードにサインインできるため、アプリケーションの開発者です。これを引き起こす可能性のある他の問題は何ですか? どんな助けでも本当にありがたいです、私はこれに長い間立ち往生しています。

これが私のコードです:

//variable instantiation
container = CKContainer.defaultContainer()
println(container.containerIdentifier)
publicDB = container.publicCloudDatabase
privateDB = container.privateCloudDatabase

//save record code
let passRecord = CKRecord(recordType: "Password")
passRecord.setValue("testytestPow", forKey: "title")
passRecord.setValue("password02", forKey: "value")
privateDB.saveRecord(passRecord, completionHandler: { (record, error) -> Void in
    if (error != nil) {
        println(error)
    } else {
        NSLog("Saved in cloudkit")
        self.fetchTodos()
    }
})
4

6 に答える 6

2

MutableArray から多くのレコードを追加しようとしていたため、同じことが起こっていました。この問題を修正するには、saveRecord を再帰的に呼び出す必要がありました。

MyObject *obj = [arrayOfObjects ObjectAtIndex:index];
[self addRecord];

そして addRecord メソッドで

- (void) addRecord {
    // if all objects added, exit recursive method
    if(index == [arrayOfObjects count]) {
        return;
    }

    MyObject *obj = [arrayOfObjects ObjectAtIndex:index];

    [publicDatabase saveRecord:rec completionHander:^(CKRecord *myRec, NSError *error) {
    if (!error) {
        index++
        [self addRecord];

    }
}
于 2015-03-21T14:51:02.323 に答える
1

カスタム CKRecordZone を作成し、同時に新しい CKRecord を保存しようとしたときに、このエラーが発生しました。CKModifyRecordZone メソッドの完了ブロックに CKRecord の保存を入れることで問題を修正しました。

于 2015-09-09T04:08:47.753 に答える
0

私にとっては、同じメソッドで「新しいデータの保存」と「データの取得」と「取得したデータの更新」を呼び出していました。「新しいデータを保存」を削除すると、すべて正常に機能します。

于 2015-06-28T01:40:39.133 に答える