尝试将对象保存到 CloudKit 记录时得到 nil

Posted

技术标签:

【中文标题】尝试将对象保存到 CloudKit 记录时得到 nil【英文标题】:getting nil when try to save object to a CloudKit record 【发布时间】:2015-10-23 10:52:21 【问题描述】:

我正在尝试将对象保存到 CloudKit 记录中 my CloudKit model

func savePlaceToCloud (id: Int, latitude: Double, longitude: Double, title: String, additionalInfo: String) 
    let place = CKRecord(recordType: "Place")
    place.setValue(id, forKey: "id")
    place.setValue(latitude, forKey: "latitude")
    place.setValue(longitude, forKey: "longitude")
    place.setValue(title, forKey: "title")
    place.setValue(additionalInfo, forKey: "additionalInfo")
    print(place)

    publicDB.saveRecord(place, completionHandler:  (record, error) -> Void in
        print(record)
        NSLog("saved to iCloud")
    )

here is a console

【问题讨论】:

你从哪里得到零?另外publicDB 是什么? 我在 publicDB.saveRecord 中得到 nil 关闭 publicDB = container.publicCloudDatabase - 一个 cloudKit 使用私有和公共数据库来分离私有和公共用户数据 如果你在那里打印错误会得到什么? 你不能检查错误是否为零吗?如果为 nil,则表示已保存。否则,数据尚未保存。另外,container 是什么?我需要有一个工作代码才能调试您的问题 打印错误返回 Optional() 【参考方案1】:

我最终在这里在谷歌上搜索“cloudkit 此请求需要经过身份验证的帐户”。我的问题是我没有在模拟器中登录 iCloud。

【讨论】:

以上是关于尝试将对象保存到 CloudKit 记录时得到 nil的主要内容,如果未能解决你的问题,请参考以下文章

将多个字段添加到 CloudKit 中的同一记录名称行

将记录保存到 CloudKit 时应用程序崩溃

为啥 CloudKit 不允许我将任何记录保存到默认容器的公共数据库中?

如何将字典保存到cloudkit

Cloudkit 中的即时模式

如何更灵活的处理 CloudKit 从云端同步到本地的 CoreData 托管对象