我有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。
答案 0 :(得分:1)
在您的代码中,当您只想添加用户的对象ID时,您尝试添加整个用户对象。如果您只想添加用户的对象ID,那么您将执行以下操作:
// ...
message["user"] = PFUser.currentUser().objectId
在您的数据库中,您的user
列将为String类型。
如果您确实想要将整个用户对象添加为与消息对象的关系,那么您可以像添加用户一样添加用户:
// ...
message["user"] = PFUser.currentUser()
在您的数据库中,您的user
列的指针类型为_User
。
答案 1 :(得分:0)
我明白了!这是一个Swift语言问题。在Obj-C中编写查询,它应该可以正常工作!