保存"粉丝"使用Parse在_User类中列出

时间:2015-07-26 00:33:03

标签: ios swift parse-platform pfuser

我正在尝试这个,每当我按下跟随按钮时,它会在表格视图中运行此代码。

@IBAction func followButtonTapped(sender: UIButton){



    sender.setTitle("unfollow", forState: UIControlState.Normal)

    var followers:PFQuery = PFQuery(className: "_User")
    followers.getObjectInBackgroundWithId(userIds[sender.tag], block: { (objects:PFObject?, error:NSError?) -> Void in

        if error != nil {


        } else if let object = objects {

            object.addUniqueObject(PFUser.currentUser()!.objectId!, forKey: "followers")

            object.saveInBackgroundWithBlock({ (success, error) -> Void in

                if error != nil {


                } else {

                    println("saved")
                }


            })


        }




    })



}

我收到此错误:

Error]: Caught "NSInternalInconsistencyException" with reason "User cannot be saved unless they have been authenticated via logIn or signUp"

我知道的是,这是因为我们无法更新_User类,直到用户更新为当前用户..所以我想在_User类中保存用户的所有关注者。有可能吗?

2 个答案:

答案 0 :(得分:2)

您确定列关注者是一个数组,以便您可以为其添加值吗? 顺便说一句,正如您已经检查过它是否有错误,如果找到则打印出来。

println("Found an error: \(error!.description)")

编辑:

好吧,现在我得到了你打算做的事情。将当前用户添加到其他用户的关注者列。

  1. 您可以将ACL公共保存为Write并继续保存,但这不是很安全。
  2. 或者您可以创建另一个类“Follow”,您可以在其中指定谁跟随“fromUser column”并且跟随“toUser column”,这两个指针都指向_User,这样您甚至可以在想要执行某个操作时跟踪以下关系取消关注。这种方式使您的工作更轻松。
  3. 从某人那里获取所有粉丝:

    let followers = PFQuery(class: "Follow")
    followers.whereKey("toUser", equalTo: PFUser.currentUser()!)
    

    创建,删除e编辑这些关系,使用PFQuery和正确的whereKeys。提示:使用

    followers.includeKey("_User")
    

    因此,如果您愿意使用关注者数据,您可以获取指针并保存服务器请求,例如在表视图中显示的名称。

答案 1 :(得分:0)

不应该像这样使用Parse Users类,您需要创建类的抽象并使用它。