我刚开始使用CloudKit和数据库提取,我查看了CKDataBaseOperation调用,所以我试图理解在向数据库添加操作和使用“正常”函数调用之间的真正区别数据库,如果它们或多或少都产生相同的结果。
为什么在函数调用和什么情况下更适合添加操作?
感谢您帮助我理解这一点。我正尽力学习Swift。
答案 0 :(得分:3)
在CloudKit
中,大多数任务都有两种处理方式:
CKDatabase.fetch
,则需要指定要获取的记录ID。CKQueryOperation
,则可以根据字段值进行查询。CKDatabase.save
,则每次调用函数都可以保存1条记录。每个函数调用都会产生一个单独的服务器请求。如果要保存200条记录,则必须在循环中运行它,并且会产生200个服务器请求,这些请求效率不高。 CloudKit还限制了您每秒可以进行的服务器请求数。这样你就可以很快耗尽你的配额。CKModifyRecordsOperation
,则可以一次性保存200条记录*,方法是将其作为数组传递。所以你要做的服务器请求要少得多。*注意:服务器对1个请求中可以保存的记录数量施加限制,但肯定比创建保存每条记录的单独请求更好。
Operation
的WWDC视频(之前曾被称为NSOperation
)