[在CloudKit中共享父记录时,子记录未显示在共享数据库中

问题描述 投票:0回答:1

我有一个可以与其他用户共享记录的应用程序,当我共享一个记录时一切正常,我的问题是当我共享有子记录引用的记录(父记录)时,我可以在其中看到父记录用户接受共享但我看不到任何相关的子记录后,CloudKit仪表板中的Shared Database

基于WWDC视频和此处Stack Overflow上的其他一些线程,当您共享父记录时,子记录会自动共享,但这不是我所看到的,再次,我可以在[C0中看到父记录],但没有子记录。

这里是在Shared Database中如何设置应用程序的概述。

[在CloudKit仪表板中,我有CloudKit DashboardLists记录类型,其中Items记录是一个或多个Lists的父级。在Items模式中,我有一个Items字段类型,该类型保留对其父级列表的引用。

这是我用来保存父记录的代码。
Reference

我想念的是什么?共享父记录时,我还需要做其他任何设置吗?

我是说子记录应该自动与父记录单独共享?

这里是一张图片,显示项目之间的关系,并且列表在func shareList(){ let share = CKShare(rootRecord: self.list) if let listName = self.list.object(forKey: "name") as? String { self.listName = self.list.object(forKey: "name") as? String share[CKShare.SystemFieldKey.title] = "Sharing \(listName)" as CKRecordValue? } else { share[CKShare.SystemFieldKey.title] = "" as CKRecordValue? } share[CKShare.SystemFieldKey.shareType] = "com.mySite.lists" as CKRecordValue let sharingViewController = UICloudSharingController(preparationHandler: {(UICloudSharingController, handler: @escaping (CKShare?, CKContainer?, Error?) -> Void) in let modRecordsList = CKModifyRecordsOperation(recordsToSave: [self.list, share], recordIDsToDelete: nil) modRecordsList.modifyRecordsCompletionBlock = { (record, recordID, error) in handler(share, CKContainer.default(), error) } CKContainer.default().privateCloudDatabase.add(modRecordsList) }) sharingViewController.delegate = self sharingViewController.availablePermissions = [.allowPrivate] self.navigationController?.present(sharingViewController, animated:true, completion:nil) } 中运行。

Private Database

[我有一个可以与其他用户共享记录的应用程序,当我共享一个记录时,一切正常,我的问题是当我共享具有子记录的记录(父记录)时,我...

swift icloud cloudkit
1个回答
0
投票

您必须使用enter image description heresetParent在每个子记录上设置父级:

喜欢此:

https://developer.apple.com/documentation/cloudkit/ckrecord/1690507-setparent
热门问题
推荐问题
最新问题