在CloudKit中保存记录不起作用[Swift 3]

时间:2016-08-08 12:17:19

标签: ios-simulator cloudkit swift3 xcode8 ckrecord

我正在尝试保存我在CloudKit仪表板中创建的记录。

@IBAction func signUpPressed(_ sender: AnyObject) {

    let authInfo = AuthInfo()

    authInfo.email = emailField.text!
    authInfo.firstName = firstField.text!
    authInfo.lastName = lastField.text!
    authInfo.username = usernameField.text!
    authInfo.password = passwordField.text!

    let container = CKContainer.default()
    let privateData = container.privateCloudDatabase

    let record = CKRecord(recordType: "Authentication")
    record.setValue(authInfo.email, forKey: "email")
    record.setValue(authInfo.username, forKey: "username")
    record.setValue(authInfo.firstName, forKey: "firstName")
    record.setValue(authInfo.lastName, forKey: "lastName")
    record.setValue(authInfo.password, forKey: "password")
    privateData.save(record, completionHandler: { record, error in
        if error != nil {
            print(error)

        } else {

        }

而且,我很确定我的代码没问题。 (CloudKit框架肯定是正确导入的,并且使用有效的开发人员帐户和容器正确启用CloudKit,没有问题)但是当我尝试运行此代码时,我收到一条错误消息,说我有一个授权帐户。但是,其他类似的问题似乎已经通过确保您在模拟器上登录到iCloud来解决(我正在使用Xcode 8),但是我已经检查并仔细检查了我登录到iCloud,所以我没有想法是什么问题。我怎么能解决这个问题呢。它实际上与我的代码有关吗?

1 个答案:

答案 0 :(得分:1)

您的代码看起来很好。它与身份验证有关。

您使用的是新的iCloud测试帐户还是开发者帐户?如果是全新的帐户,我会先尝试通过iCloud.com在浏览器中登录。

另一种选择可能是重置模拟器(Reset Content and Settings)并在Settings > iCloud中再次设置iCloud。