将String转换为PFObject .. Parse

时间:2015-07-30 22:20:29

标签: ios swift pointers parse-platform

我正在以这种方式检索所有用户详细信息..

myarray

现在我在myCell中有“关注”按钮..以这种方式保存..

var userIds = [String]()
var userNames = [String]()
var profilePics = [PFFile]()
var gender = [String]()


override func viewDidLoad() {
    super.viewDidLoad()

    var userQuery = PFUser.query()
        userQuery?.findObjectsInBackgroundWithBlock({ (objects, error) -> Void in

            if let objects = objects {

                self.userIds.removeAll(keepCapacity: true)
                self.userNames.removeAll(keepCapacity: true)
                self.profilePics.removeAll(keepCapacity: true)

                for object in objects {

                    if let user = object as? PFUser {
                        if user.objectId !=  PFUser.currentUser()?.objectId {

                            self.userIds.append(object.objectId as String!)
                            self.userNames.append(object["fullName"] as! String!)
                            self.profilePics.append(object["profilePicture"] as! PFFile!)
                            self.gender.append(object["gender"] as! String!)

                        }


                    }

                }


            }


            self.tableView.reloadData()

        })

}

因为我想与“追随者”类中的每个对象建立关系,这就是为什么我希望它们以指针的形式出现..有什么建议吗?

1 个答案:

答案 0 :(得分:1)

如果要创建指向另一个PFObject(包括PFUser)的指针,则需要实际指向该对象。

我在您的查询中看到您没有向阵列添加任何PFUser,但是您正在获取它们的对象ID。

由于标记仅用于Int,因此不能使用它来传递String(Parse objectID是)。

您可以子类化UIButton并创建一个新属性来处理来自parse的objectID,然后使用它来执行带有objectID的查询,并将指针保存到该查询的结果中。或者,您只需将第一个查询中的对象添加到本地数组,然后使用按钮的标记来获取要指向的对象的索引。

更新

由于您拥有所需的PFuser的objectId,您可以获取它并更新您的关注者:

        let getOjbectByIdQuery = PFQuery(className: "User")
    getOjbectByIdQuery.whereKey("objectId", equalTo: userIds[sender.tag])
    getOjbectByIdQuery.getFirstObjectInBackgroundWithBlock { (foundObject: PFObject?, error: NSError?) -> Void in

        if let object = foundObject {

            var followers:PFObject = PFObject(className: "Followers")
            followers["user"] = object
            followers["follower"] = PFUser.currentUser()
            follwers.saveInBackground()

        }
    }