ios - 优化 CKFetchRecordZoneChangesOperation 以获取所需键
<p><p>在我的 CloudKit 应用程序中,我在存储所有 CKRecord 的私有(private)数据库中创建了一个区域。 CKRecords 可以是 10 种不同的记录类型,其中一些可以附加 CKAsset。我使用 <code>CKFetchRecordZoneChangesOperation</code> 来查找该区域中的记录更改,并下载它们。我想优化<code>CKFetchRecordZoneChangesOperation</code>,使我在下载中只包含<code>desiredKeys</code>,所以我当时没有下载CKAsset,但是好像没有任何方式来指定每个记录类型。相反,您似乎只能在 zoneID 上设置的 <code>CKFetchRecordZoneChangesOptions</code> 上指定 <code>desiredKeys</code>。</p>
<p>那么,考虑到该区域中有不同类型的记录类型,我如何在 <code>CKFetchRecordZoneChangesOperation</code> 提取中指定“desiredKeys”?我在这里错过了一些简单的东西吗?
我猜的另一个(极端)选项是为每种记录类型创建一个记录区域,但如果有可能的话,我不想走这条路。</p>
<p>谢谢。</p></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>唯一的选择是为每种记录类型添加字段名称的前缀。这样就可以为每种记录类型指定所需的键。</p>
<p> <a href="https://developer.apple.com/reference/cloudkit/ckfetchrecordzonechangesoptions/1640472-desiredkeys" rel="noreferrer noopener nofollow">https://developer.apple.com/reference/cloudkit/ckfetchrecordzonechangesoptions/1640472-desiredkeys</a>状态:</p>
<blockquote>
<p>var desiredKeys: ?</p>
<p>...</p>
<p>Because the records you fetch can be of different types, the array <strong>should contain the merged set of all field names</strong> for the requested records and include at least one field name from each record type.</p>
<p>...</p>
</blockquote>
<p>您的观察是正确的。您也无法获取特定于记录类型的区域更改。</p></p>
<p style="font-size: 20px;">关于ios - 优化 CKFetchRecordZoneChangesOperation 以获取所需键,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/43746117/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/43746117/
</a>
</p>
页:
[1]