【发布时间】:2016-06-01 18:10:18
【问题描述】:
是否可以使用 Swift 在一个 CloudKit 操作中保存多个 CKRecord 对象?我知道如何一次检索多条记录,使用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.
}
}
})
}
虽然这确实工作得很好而且花花公子,但在我看来,它似乎效率极低。我认为调用一个特定的函数来保存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 的方法吗?任何帮助都将不胜感激。提前谢谢!
【问题讨论】:
标签: ios swift cloudkit ckrecord