Pie*_*rce 6 ios swift cloudkit ckrecord
是否可以使用Swift CKRecord在一个CloudKit操作中保存多个对象?我知道如何一次检索多个记录,使用类似CKFetchRecordsOperation甚至只是常规的东西performQuery.我刚刚意识到我不确定在一次操作中保存多个新记录的方法.到目前为止,我一直这样做的方式对我来说似乎效率低下.例如:
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.
}
}
})
}
Run Code Online (Sandbox Code Playgroud)
虽然这确实很好用,但在我看来它似乎效率极低.我认为让一个特定的函数调用来保存整个数组会更有意义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 {
}
}
})
}
Run Code Online (Sandbox Code Playgroud)
尽我所知,并根据我获得的信息.没有像database.saveRecords(复数)这样的实际功能.除非我错过了什么?我认为它不是那么切割和干燥,命名是不同的,但我认为必须有类似的东西.
每次进行循环时都必须进行数据库调用,这似乎非常低效.
有谁知道的方法来执行保存多个CKRecords在同一时间,使用CloudKit?任何帮助都将非常感激.先感谢您!
rma*_*ddy 10
saveRecord在循环中使用是非常低效的.实际上最好避免使用所有便捷方法CKDatabase并使用适当的操作.
要添加/修改/删除一个或多个记录,请使用CKModifyRecordsOperation.您可以通过单个操作添加/修改以及删除任意数量的记录.这比使用效率高得多saveRecord.
我建议您浏览CloudKit Framework Reference以查看可用操作的完整列表.
| 归档时间: |
|
| 查看次数: |
1954 次 |
| 最近记录: |