iOS 13,CloudKit和CoreData与自定义区域同步以进行共享

时间:2019-07-31 12:31:35

标签: core-data synchronization cloudkit zone

在WWDC 2019期间,Apple推出了NSPersistentCloudKitContainer,它允许将CoreData与CloudKit同步。这是一个很棒的补充。在iOS 13中,Notes应用程序中还允许用户与另一个用户共享整个便笺“ FOLDER”。鉴于Apple使用CloudKit for Notes应用程序,我想创建类似的东西来了解它如何更好地工作。

Apple创建com.apple.coredata.cloudkit.zone区域,如果满足所有设置条件,则基本上将那里的所有数据同步到该区域。但是,当用户想要共享数据时,没有任何指南。根据WWDC的前一次演讲,共享将主要通过创建CUSTOM ZONE来实现。但是,新的NSPersistentCloudKitContainer无法为CoreData中的每个实体提供更改区域的方法。

我很高兴能找到这些

open func record(for managedObjectID: NSManagedObjectID) -> CKRecord?

open func records(for managedObjectIDs: [NSManagedObjectID]) -> [NSManagedObjectID : CKRecord]

open func recordID(for managedObjectID: NSManagedObjectID) -> CKRecordID?

open func recordIDs(for managedObjectIDs: [NSManagedObjectID]) -> [NSManagedObjectID : CKRecordID]

,因为他们给人的印象是容器调用此方法来检索CKRecord,因此是修改诸如区域等信息的点。但是在设置之后,我意识到当我向CoreData中添加新实体时,这些功能即使不调用覆盖时。

简而言之,我的问题是:如何控制NSPersistentCloudKitContainer如何管理哪个记录属于com.apple.coredata.cloudkit.zone之外的哪个区域

0 个答案:

没有答案