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

Posted

技术标签:

【中文标题】Parse.com 错误:无法向关系添加非指针【英文标题】:Parse.com error: can't add a non-pointer to a relation 【发布时间】:2015-07-02 15:57:29 【问题描述】:

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

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

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

这是我的代码:

 @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 类表,但不能保存保存它的用户的用户 ID。

【问题讨论】:

【参考方案1】:

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

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

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

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

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

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

【讨论】:

【参考方案2】:

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

【讨论】:

用示例代码 sn-p 充实答案将大大有助于使其成为一个好的答案。

以上是关于Parse.com 错误:无法向关系添加非指针的主要内容,如果未能解决你的问题,请参考以下文章

向函数添加 ID 以防止出现非空错误

以编程方式创建 Parse.com 角色

Discord Bot 错误:无法向刚启动的协程发送非无值

添加和查询指针不适用于 Parse.com 的 REST API

当我为JAX WS类添加@Autowire注释时,它在spring boot中给出了空指针异常错误

向核心数据添加记录时出现 NSSet 错误(多对多关系)