首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法共享CloudKit CKShare记录

无法共享CloudKit CKShare记录
EN

Stack Overflow用户
提问于 2017-02-09 22:33:50
回答 2查看 868关注 0票数 0

但是,每当我尝试使用UICloudSharingController共享一个项目时,我都会得到一个一致的错误:

我收到了用于添加人员的初始共享弹出,然后当我选择关于如何发送邀请(即通过邮件)的选项之一时,UICloudSharingControllerDelegate将返回呼叫:

代码语言:javascript
复制
func cloudSharingController(_ csc: UICloudSharingController, failedToSaveShareWithError error: Error)

并抛出错误:

recordName=C9FA0E96-3461-4C9E-AB99-3B342A37A07A,zoneID=PrivateDatabase:__defaultOwner_)" CKError 0x170245d60:“无效参数”(12);“添加的共享在没有rootRecord的情况下保存(CKRecordID: 0x1700343e0;)

我已经在私有云数据库中为zoneId为"PrivateDatabase“的用户创建了一个自定义区域。我已经创建了一个对象,并成功地将其保存到iCloud中,并将其链接到我以前创建的自定义区域。用于表示UICloudSharingController的代码如下:

代码语言:javascript
复制
let object = // A core data representation of a CKRecord //

let share = CKShare(rootRecord: object.record) //record is a CKRecord that is stored with the core data object 
share[CKShareTitleKey] = object.name as? CKRecordValue
share[CKShareThumbnailImageDataKey] = UIImagePNGRepresentation(object.categoryKey.icon()) as? CKRecordValue
share[CKShareTypeKey] = "reverse.domain" as CKRecordValue
share.publicPermission = .readOnly

let sharingController = UICloudSharingController(share: share, container: self.container)
sharingController.delegate = self
sharingController.availablePermissions = [.allowPrivate, .allowReadOnly]
sharingController.popoverPresentationController?.sourceView = sourceView
controller.present(sharingController, animated: true, completion: nil)

我在这里错过了什么?

EN

回答 2

Stack Overflow用户

发布于 2020-03-14 13:49:01

您对UICloudSharingController实例使用了错误的初始化器。有两个不同的初始化器用于,两个不同的用例

  • 如果一项第一次被共享(尚未共享),则必须使用CKShare创建一个新的rootRecord实例(就像在代码中所做的那样),但是必须使用这个初始化器init(preparationHandler:)初始化UICloudSharingController。
  • 如果某项已处于共享过程中,则必须从iCloud中获取现有共享,并使用此初始化器init(share:container:)初始化您的UICloudSharingController

因此,在您的情况下,错误是,您创建了一个新的CKShare实例,但是使用了错误的初始化程序。

苹果公司更多报道

票数 2
EN

Stack Overflow用户

发布于 2017-02-10 19:51:11

您是否在iCloud中签入,共享是否具有指向正确区域中的根记录的正确链接,以及/或rootRecord是否存在.

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

https://stackoverflow.com/questions/42148151

复制
相关文章

相似问题

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