gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 00:36:05 25 4
gpt4 key购买 nike

我正在研究 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com