gpt4 book ai didi

ios - CKQueryOperation 和 Perform(Fetch...) 的区别

转载 作者:行者123 更新时间:2023-12-01 15:58:16 24 4
gpt4 key购买 nike

我是使用 CloudKit 和数据库获取的新手,我已经查看了 CKDataBaseOperation 调用,所以我试图了解向数据库添加操作和在该数据库上使用“正常”函数调用之间的真正区别,如果他们两者或多或少都会产生相同的结果。

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

感谢您帮助我理解这一点。我正在尝试尽可能多地了解 Swift。

最佳答案

概述:
CloudKit大多数任务有两种做事方式:

  • 便利 API(带有完成处理程序的函数)
  • 运营

  • 1. 便捷API
    好处:
  • 顾名思义,使用方便

  • 坏处:
  • 通常需要更多的服务器请求。
  • 无法建立依赖关系

  • 2.操作:
    好处:
  • 更多可配置和更多选项。
  • 需要较少的服务器请求(对您的服务器请求配额更好)
  • 它是使用 Operation 构建的,因此您可以获得 Operation 的所有功能,例如依赖项(您将在实际应用中需要它们)

  • 缺点:
  • 使用起来不太方便,需要自己创建操作。编码需要更多时间,但非常值得。

  • 示例 1(获取):
  • 如果您使用 CKDatabase.fetch ,您需要指定要获取的记录 ID。
  • 如果您使用 CKQueryOperation ,您可以根据字段值进行查询。

  • 示例 2(保存/更新):
  • 如果您使用 CKDatabase.save ,您可以在每个函数调用中保存 1 条记录。每个函数调用都会产生一个单独的服务器请求。如果要保存 200 条记录,则必须循环运行它并发出 200 个服务器请求,效率不高。 CloudKit 对每秒可以发出的服务器请求数也有限制。这样你会很快耗尽你的配额。
  • 如果您使用 CKModifyRecordsOperation ,您可以一次保存 200 条记录*,通过将其作为数组传递。因此,您将发出更少的服务器请求。

  • *注意:服务器对它在 1 个请求中可以保存的记录数量施加了限制,但这绝对比创建单独的请求来保存每条记录要好。
    引用:
  • https://developer.apple.com/library/content/documentation/DataManagement/Conceptual/CloudKitQuickStart/Introduction/Introduction.html#//apple_ref/doc/uid/TP40014987-CH1-SW1
  • 观看 WWDC CloudKit 视频
  • 可能有助于学习和观看有关 Operation 的 WWDC 视频(以前称为 NSOperation )
  • 关于ios - CKQueryOperation 和 Perform(Fetch...) 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44228671/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com