在 Cloudkit 中创建 CKRecord?

Posted

技术标签:

【中文标题】在 Cloudkit 中创建 CKRecord?【英文标题】:Creating a CKRecord in Cloudkit? 【发布时间】:2015-09-01 18:43:51 【问题描述】:

我对 CloudKit 非常陌生,正在尝试为我的公共数据库记录类型“UserProfile”创建一条记录。

我认为我在最后一行代码中的语法不正确,因为我收到错误“无法使用类型为 (CKRecord, (CKRecord!, NSError) -> Void) 的参数列表调用 'saveRecord' '

我是否因为我不知道的 Swift 更新而收到错误,感谢任何帮助!

var nameRecord = CKRecord(recordType: "UserProfile")
    nameRecord.setValue("Jimmy", forKey: "Name")
    CKContainer.defaultContainer().publicCloudDatabase.saveRecord(nameRecord)  (savedRecord: CKRecord!, error: NSError) -> Void in

    

【问题讨论】:

【参考方案1】:

错误是因为您传入了 (CKRecord!,NSError) 类型的闭包,您应该传入其中一种类型(CKRecord!,NSError!),或者使用显式选项而不是隐式展开的选项。

试试:

var nameRecord = CKRecord(recordType: "UserProfile")
    nameRecord.setValue("Jimmy", forKey: "Name")
    CKContainer.defaultContainer().publicCloudDatabase.saveRecord(nameRecord)  (savedRecord: CKRecord?, error: NSError?) -> Void in

    

【讨论】:

啊,我昨晚为此工作了几个小时,甚至没有看到这个答案。感谢藻类为我节省了这么多时间!

以上是关于在 Cloudkit 中创建 CKRecord?的主要内容,如果未能解决你的问题,请参考以下文章

未收到CloudKit推送通知

在 Cloudkit 中更改 CKRecord 的 CKRecordID 是不是合法?

为啥我无法访问 CloudKit 中 CKRecord 的 createdAt 字段?

快速从 Cloudkit 中删除 CKRecord

CloudKit - 在 CKRecord 中存储多个 CKReference

如何删除 CKRecord 和 CloudKit 中的所有引用记录