ios - 有没有办法用一个 UICloudSharingController 创建多个 CKShares?

标签 ios swift cloudkit

对于现在和单个共享,我是这样做的:

//here I have access to record fetched from cloud database
let controller = UICloudSharingController { controller, preparationCompletionHandler in
    let share = CKShare(rootRecord: record)
    share[CKShareTitleKey] = territory.name as CKRecordValue
    share[CKShareTypeKey] = "pl.blueworld.fieldservice" as CKRecordValue
    share.publicPermission = .readWrite

    let operation = CKModifyRecordsOperation(recordsToSave: [record, share], recordIDsToDelete: nil) //what happens if I pass here a three records and three related ckshares?
    operation.savePolicy = .ifServerRecordUnchanged

    operation.modifyRecordsCompletionBlock = { records, recordIds, error in
        preparationCompletionHandler(share, CloudAssistant.shared.container, error) //how can I do it for every created ckshare?
    }

    operation.database = territory.database
    CloudAssistant.shared.operationQueue.addOperation(operation)
}
controller.delegate = self
controller.popoverPresentationController?.barButtonItem = self.collaborateBarButtonItem
present(controller, animated: true)

但是我怎样才能为 2 ckshares 做这件事呢?可能吗?

最佳答案

当然,在你添加share的地方,你想设置多少就设置多少,例如让 share1 = ...;让 share2 = ...;。然后在 CKModifyRecordsOperation 初始化器中,添加每个共享,例如CKModifyRecordsOperation(recordsToSave: [record1, share1, record2, share2].

关于ios - 有没有办法用一个 UICloudSharingController 创建多个 CKShares?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47891017/

相关文章:

ios - 不调用didSelectRowAtIndexPath获取UITableViewCell数据

ios - 更新到 Xcode 10.2 后出现 PDFKit 问题。有什么办法解决吗?

swift - swift hashable 协议(protocol)哈希函数是否需要返回唯一值?

ios - CloudKit,远程通知和aps环境

cloudkit - 检查 CloudKit 数据库操作是否正在进行

objective-c - 从网页中提取文本并将其显示在ios上的textview中

objective-c - 我将在哪里实现一个通用方法,供 3 ​​个不同的 View Controller 使用?

带有预填充 sqlite 数据库的 iOS 发布应用程序

swift - 加载 Firestore 消息时如何引用正确的发件人和收件人

ios - 如何从 CloudKit 容器中删除?