首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何知道CloudKit区域是否已经存在

如何知道CloudKit区域是否已经存在
EN

Stack Overflow用户
提问于 2016-05-26 04:38:09
回答 1查看 1.9K关注 0票数 7

要在私有CKRecord中添加CKRecordZone,需要确保区域已经存在。

但是,这是否意味着每次需要插入记录时,我都需要获取所有的区域,并使用fetchAllRecordZonesWithCompletionHandler查找我的区域是否存在?不会很有效率的。

最好的策略是什么?

我看到的大多数示例都展示了如何创建区域并将记录添加到其中。但你不能每次都创建这个区域,你不能假设它存在.

如果尚未创建区域,下面的代码将失败。

代码语言:javascript
复制
let customZone = CKRecordZone(zoneName: self.zoneName!)
// Create a CKRecord
let lessonRecord = CKRecord(recordType: self.recordType, zoneID: customZone.zoneID)

谢谢你的帮助。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-26 14:15:25

若要查看特定区域是否存在,请使用CKFetchRecordZonesOperation并只传递一个记录区域ID。

只有在正确设置代码的情况下,才需要执行一次。

创建表示记录区域的类。这个类应该对给定区域执行所有CloudKit操作。当您为特定区域初始化该类的实例时,可以检查该区域是否存在。如果没有,则创建区域。然后,每次需要向该区域读取或写入数据时,都会使用此zone helper类的特定实例。

当然,每次读写操作都需要检查错误结果,以检查CKErrorZoneNotFound错误。如果出现这样的错误,可能意味着该区域已从该应用程序的另一个副本中删除。

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

https://stackoverflow.com/questions/37451722

复制
相关文章

相似问题

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