CKQuery存在时CKQueryOperation存在的原因

Reason for existence of CKQueryOperation when CKQuery exists

除了能够链接不同的 CKQuery 以及设置检索结果限制的能力之外,为什么还需要 CKQueryOperation? 基本上都是那两个功能吗?因为我只是不确定有 CKQueryOperation 的原因是什么。

CKQueryOperation 对象是一个具体的操作,您可以使用它来对数据库执行查询。查询操作采用您提供的查询参数并将这些参数应用于指定的数据库和区域,将任何匹配的记录异步传送到您提供的块。

NSObject-> NSOperation-> CKOperation-> CKDatabaseOperation-> CKQueryOperation

查询仅限于单个区域中的记录。对于新查询,您在初始化查询操作对象时指定区域。对于基于游标的查询,游标包含区域信息。要在多个区域中搜索记录,您必须为要搜索的每个区域创建一个单独的 CKQueryOperation 对象,尽管您可以使用相同的 CKQuery 对象初始化每个区域。

CKconvenience 例程就其本身而言非常好; CloudKit 的介绍,但在几个简短的 noddy 程序中,您很快就会发现它们的用途有一些严重的局限性。

使用 CKOperations,您可以进行更改,例如更改您 want/care 关注的服务质量之类的内容,并通过比使用 CKconvenience 方法更多的控制来监控它们的执行。

不言而喻,在被迫使用 CKoperations 进行记录维护后,您可能想要构建结构,在整个应用程序的代码中使用相同的技术。