Parse.com错误:无法向关系添加非指针

时间:2015-07-02 15:57:30

标签: swift parse-platform pfobject

我有Messages类表,表中包含“messageTextColumn”列和“user”列。

这个“user”列,我用类型指针创建它,目标类是_User,它是解析主类。

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

这是我的代码:

 @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
        }
    }
}

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

  

[错误]:无法添加关系的非指针(代码:111,版本:1.7.4)

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

message["user"] = user

我能够将消息保存到Parse Messages类表,但不能保存保存它的用户的userID。

2 个答案:

答案 0 :(得分:1)

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

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

在您的数据库中,您的user列将为String类型。

如果您确实想要将整个用户对象添加为与消息对象的关系,那么您可以像添加用户一样添加用户:

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

在您的数据库中,您的user列的指针类型为_User

答案 1 :(得分:0)

我明白了!这是一个Swift语言问题。在Obj-C中编写查询,它应该可以正常工作!