0

我在 Swift 中使用 Parse SDK 并尝试创建一个新的投票对象,然后保存指向当前用户的指针。

我收到以下错误 - [错误]:无法添加指向关系的非指针(代码:111,版本:1.7.1)。

func createVoteObject(row: Int, quest: PFObject) {
    var vote = PFObject(className: "Votes")
    vote["user"] = PFUser.currentUser()

    vote.saveInBackgroundWithBlock {
        (success: Bool, error: NSError?) -> Void in
        if error != nil {
            println("Error saving vote object: \(error!)")
        } else {
            Do something else
        }
    }
}

添加其他属性我没有问题。

我遇到与此功能相同的问题

func saveVoteToUserObject(vote: PFObject, quest: PFObject) {

    if let currentUser = PFUser.currentUser() {
        var userToVoteRelation = currentUser.relationForKey("votes")
        userToVoteRelation.addObject(vote)
        var userToQuestRelation = currentUser.relationForKey("votedOnQuests")
        userToQuestRelation.addObject(quest)

        currentUser.saveInBackgroundWithBlock {
            (success: Bool, error: NSError?) -> Void in
            if error != nil {
                println(error)
            } else {
                println("Successfully saved vote to User object")
            }
        }
    }
}

有什么想法吗?

4

2 回答 2

1

Wain 启发了解决此问题的方法。必须通过清除缓存并重新登录来刷新用户(使用 PFUser.logOut() 或在 iOS 模拟器中重置内容和设置)。

任何时候你试图创建一个指针,都需要使用最新版本的指针对象。我在 User 对象中添加了一些字段,这些字段没有在我的 PFUser.currentUser() 实例中更新,因为它被缓存了。

于 2015-04-20T20:00:38.537 回答
0

确认的。我看到这个错误使用

newProfileImage["owner"] = PFUser.currentUser()

设置指向用户的指针。以下作品:

PFUser.currentUser()?.fetch()

newProfileImage.setObject(PFUser.currentUser()!, forKey: "owner")
于 2015-06-16T16:52:02.917 回答