首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CKQueryOperation和Perform(Fetch...)的区别

CKQueryOperation和Perform(Fetch...)的区别
EN

Stack Overflow用户
提问于 2017-05-28 22:56:59
回答 1查看 522关注 0票数 2

我刚开始使用CloudKit和数据库获取,并且我已经研究过CKDataBaseOperation调用,所以我试图理解向数据库添加操作和在数据库上使用“普通”函数调用之间的真正区别,如果它们产生的结果或多或少相同。

为什么添加操作比函数调用更可取?在什么情况下?

谢谢你帮我理解这一点。我正在尽可能多地学习关于Swift的知识。

EN

回答 1

Stack Overflow用户

发布于 2017-05-29 00:48:30

概述:

CloudKit中,大多数任务都有两种方式:

  • 便利化handlers)
  • Operations

(带有完成API的函数

1.便捷接口

优势:

  • 顾名思义,

使用起来很方便

缺点:

  • 通常需要更多的server requests.
  • Can't build dependencies

2.操作:

优势:

  • 可配置性更强,options.
  • Requires更多更少的服务器请求(更适合您的服务器请求配额)
  • 它是使用操作构建的,因此您可以获得操作的所有功能,如依赖项(您将在真正的应用程序中需要它们)

缺点:

  • 使用起来不是很方便,你需要自己创建操作。这需要更多的时间来编码,但这是值得的。

示例1 (Fetch):

  • 如果使用CKDatabase.fetch,则需要指定要提取的记录If。
  • 如果使用CKQueryOperation,则可以根据字段值进行查询。

示例2(保存/更新):

  • 如果你使用CKDatabase.save,你可以在每次函数调用时保存一条记录。每个函数调用都会产生一个单独的服务器请求。如果你想保存200条记录,你将不得不在循环中运行它,并且会产生200个服务器请求,这是非常低效的。CloudKit对每秒可以发出的服务器请求的数量也有限制。
  • 如果你使用CKModifyRecordsOperation,你可以一次保存200条记录*,通过把它作为一个数组来传递。因此,您发出的服务器请求将会少得多。

*注意:服务端对1次请求保存的记录数量有限制,但这绝对比单独创建请求保存每条记录要好。

参考资料:

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44228671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档