我刚开始使用CloudKit和数据库获取,并且我已经研究过CKDataBaseOperation调用,所以我试图理解向数据库添加操作和在数据库上使用“普通”函数调用之间的真正区别,如果它们产生的结果或多或少相同。
为什么添加操作比函数调用更可取?在什么情况下?
谢谢你帮我理解这一点。我正在尽可能多地学习关于Swift的知识。
发布于 2017-05-29 00:48:30
概述:
在CloudKit中,大多数任务都有两种方式:
(带有完成API的函数
1.便捷接口
优势:
使用起来很方便
缺点:
2.操作:
优势:
缺点:
示例1 (Fetch):
CKDatabase.fetch,则需要指定要提取的记录If。CKQueryOperation,则可以根据字段值进行查询。示例2(保存/更新):
CKDatabase.save,你可以在每次函数调用时保存一条记录。每个函数调用都会产生一个单独的服务器请求。如果你想保存200条记录,你将不得不在循环中运行它,并且会产生200个服务器请求,这是非常低效的。CloudKit对每秒可以发出的服务器请求的数量也有限制。CKModifyRecordsOperation,你可以一次保存200条记录*,通过把它作为一个数组来传递。因此,您发出的服务器请求将会少得多。*注意:服务端对1次请求保存的记录数量有限制,但这绝对比单独创建请求保存每条记录要好。
参考资料:
Operation的WWDC视频(以前称为https://stackoverflow.com/questions/44228671
复制相似问题