Parse.com error: can't add a non-pointer to a relation

Parse.com error: can't add a non-pointer to a relation

我有消息 class table 并且在 table 中包含 "messageTextColumn" 列和 "user" 列。

这个 "user" 专栏,我用指针类型创建它,目标 class 是 _User,它是 parse main class.

我想存储用户保存的消息和 userId,以便我可以查询它并在该用户的消息中显示它 table查看单元格将显示用户保存的每条消息的列表我的应用程序。

这是我的代码:

 @IBAction func addMessage(sender: AnyObject) {
    var newMessage = addMessageText.text

    let message = PFObject(className: "Messages")
    var user = PFUser.currentUser()
    message["messageTextColumn"] = newMessage
    message["user"] = user

    message.saveInBackgroundWithBlock {(success: Bool, error: NSError?) -> Void in
        if (success) {
            println("added to Message Class")
           println(user)
            message.saveInBackground()
        } else {
            // Error saving message
        }
    }
}

问题是当我运行这个时,日志显示:

[Error]: can't add a non-pointer to a relation (Code: 111, Version: 1.7.4)

并且消息根本没有保存在 Parse 上,但是当我删除这行代码时:

message["user"] = user

我能够将消息保存到 Parse Messages class table 但不能保存它的用户的用户 ID。

在您的代码中,当您说您只想添加用户的对象 ID 时,您正试图添加整个用户对象。如果您只想添加用户的对象 ID,那么您可以执行以下操作:

// ...
message["user"] = PFUser.currentUser().objectId

并且在您的数据库中,您的 user 列将是字符串类型。

如果您真的想将整个用户对象添加为与您的消息对象的关系,那么您将像您所做的那样添加用户:

// ...
message["user"] = PFUser.currentUser()

并且在您的数据库中,您的 user 列将是指向 _User 的指针类型。

我想通了!这是一个 Swift 语言问题。在 Obj-C 中编写查询,它应该可以完美运行!