の操作で複数のCKRecord
オブジェクトをSwiftで保存することはできますか?私はCKFetchRecordsOperation
や普通のperformQuery
のようなものを使って、一度に複数のレコードを取り出す方法を知っています。私は、1回の操作で複数の新しいレコードを保存する方法がわからないことに気付いた。私がこれまで行ってきたやり方は、私にとっては非効率的です。たとえば、次のようにCloudKitとSwiftを使用して複数のCKRecordsを一度に保存する
let recordsToSave:[CKRecord]!
for newRecord in recordsToSave {
if let database = self.publicDatabase {
database.saveRecord(newRecord, completionHandler: { (record:CKRecord?, error:NSError?) in
// Check if there was an error
if error != nil {
// There was an error, handle it properly.
}
else {
// There wasn't an error
if let savedRecord = record {
// Handle saved record accordingly.
}
}
})
}
そして、それがすべての罰金とダンディに動作している間、それは非常に非効率的だかのように、それは私には思えます。ループを介して毎回データベース呼び出しを行う代わりに、CKRecords
の配列全体を保存するための特定の関数を呼び出す方が理にかなっていると思います。
let recordsToSave:[CKRecord]!
if let database = self.publicDatabase {
// SOMETHING HERE LIKE database.saveRECORDS (plural) ????
database.saveRecords(recordsToSave, completionHandler: { (records:[CKRecord]?, error:NSError?) in
// Check if there was an error
if error != nil {
// There was an error, handle it properly.
}
else {
// There wasn't an error
if let savedRecords = records {
}
}
})
}
、そして私が得た情報に基づいて:基本的にここで私は私が行うことができますを望んでいるものです。 database.saveRecords
(複数)のような実際の機能はありません。私が何かを見逃していない限り?私はそのようにカットされて乾燥していないと、名前が異なると思っているが、私はそれに似ている必要があると仮定します。
私はループを通過するたびにデータベースを呼び出さなければならないので、ひどく非効率的です。
CloudKit
を使用して、一度に複数のCKRecords
の保存を実行する方法を知っている人はいますか?どんな助けでも大歓迎です。前もって感謝します!
これはまさに私が探していたものです!私は 'CKModifyRecordsOperation'を使って複数のレコードを保存することができたことを忘れてしまいました。ありがとう! – Pierce