HTML5   发布时间:2022-04-27  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了ios – 使用CloudKit和Swift一次保存多个CKRecords大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
是否可以使用 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执行保存的方法?任何帮助都将非常感激.先感谢您!

解决方法

在循环中使用saveRecord是非常低效的.实际上最好避免使用CKDatabase上的所有便方法并使用适当的操作.

添加/修改/删除一个或多个记录,请使用CkmodifyRecordsOperation.您可以通过单个操作添加/修改以及删除任意数量的记录.这比使用saveRecord更有效.

我建议您浏览CloudKit Framework Reference以查看完整的可用操作列表.

大佬总结

以上是大佬教程为你收集整理的ios – 使用CloudKit和Swift一次保存多个CKRecords全部内容,希望文章能够帮你解决ios – 使用CloudKit和Swift一次保存多个CKRecords所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。