ios - 如何使用CloudKit的CKShare创建共享?

标签 ios swift share cloudkit

我正在研究 Apple 今年发布的新 CKShare,我对它有一些疑问。我试图关注 WWDC 的“CloudKit 新增功能”视频,但部分代码在 Xcode 中不再工作。

我想做的是:用户输入他的姓名和电话,然后单击UIButton后,将与特定的人共享。这是代码:

class ViewController: UIViewController, UICloudSharingControllerDelegate {
    @IBOutlet weak var nome: UITextField!
    @IBOutlet weak var telefone: UITextField!
    @IBOutlet weak var button: UIButton!

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    @IBAction func send(_ sender: AnyObject) {
        print("Send button was clicked.\n")

        let elder = CKRecord(recordType: "Elder")
        elder["name"] = self.name.text as CKRecordValue?
        elder["telephone"] = self.telephone.text as CKRecordValue?

        let ckContainer = CKContainer.default()
        let shareRecord = CKShare(rootRecord: elder)

        shareRecord[CKShareTitleKey] = "Elder" as CKRecordValue?

        let shareController = UICloudSharingController(share: shareRecord, container: ckContainer)
        shareController.delegate = self
        shareController.availablePermissions = [.allowReadOnly]
        shareController.popoverPresentationController?.sourceView = self.button

        self.present(shareController, animated: true)
    }

    func cloudSharingController(_ csc: UICloudSharingController, failedToSaveShareWithError error: Error) {
        print("PROBLEM SAVING SHARE")
    }

    func cloudSharingControllerDidSaveShare(_ csc: UICloudSharingController) {
        print("SHARE SAVED")
    }

    func itemTitle(for csc: UICloudSharingController) -> String? {
        return "a"   //don't know what this is for
    }
}

即使出现 CloudSharingController,我的应用程序仍不断打印“PROBLEM SAVING SHARE”。此外,CKRecord elder 没有出现在 CloudKit 的仪表板中。

最佳答案

所以,我发现出了什么问题...我使用的是云套件为您创建的默认区域,而在使用 CKShare 时您不能这样做。 您所要做的就是创建一个私有(private)定制的 CKZone 并将 CKRecord 和 CKShare 保存在其中!

关于ios - 如何使用CloudKit的CKShare创建共享?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40514231/

相关文章:

ios - UIPanGestureRecognizer 检测一个对象何时穿过另一个对象

ios - 匹配 UIToolBar 中的 MPVolumeView 和 UISlider 垂直位置

ios - 在 whereKey 中解析 iOS Swift 对象键

ios - 如何为 Alamofire 响应设置委托(delegate)

swift - 使用默认值处理可能的 nil 赋值的更好方法?

ios - 使用抽屉 Controller 快速导航

C++、Ogre3D、SFML,共享资源?

android - 在 Android "The file format is not supported."错误中在 whatsapp 上共享图像

ios - 通过自定义 URL 方案调用 iOS 应用程序

ios - 在 Facebook 上分享,手机上不显示文字。 ( swift )