如何在Swift中将AnyObject转换为PFObject / PFUser?

时间:2014-11-12 02:50:22

标签: swift parse-platform

我正在为用户变量设置PFRelation,并且我希望将文本字段中的文本添加为​​PFRelation。首先我查询输入用户名是否存在,然后我将返回的对象作为PFUser。然后我尝试将PFUser添加到PFRelation以及它崩溃的地方,因为AnyObject无法下载到PFUser / PFObject。我该怎么做呢?

    var userQuery = PFUser.query()

userQuery.whereKey("username", equalTo: newUsername.text)
userQuery.findObjectsInBackgroundWithBlock { (objects, error) -> Void in

    if error == nil {

        for object in objects{
            if objects.count > 0 {
                var PFRelation = PFUser.currentUser().relationForKey("friends")
                var addRelation = object["username"] as PFUser
                PFRelation.addObject(addRelation)

                PFUser.currentUser().saveInBackgroundWithBlock{
                  (succeeded: Bool!, error: NSError!) in

                    if error == nil {
                       println("newuser added")
                    }
                    else {
                       println(error.userInfo)
                    }

谢谢!

1 个答案:

答案 0 :(得分:0)

根据我的理解,它无法完成,因为PFObject / PFUser就像一个数组。因此,我无法将一个对象转换为数组。我也使用了getFirstObjectInBackgroundWithBlock(),因为它返回一个PFObject而不是AnyObject,不确定是否有所不同。以下是我的工作代码。

var userQuery = PFUser.query()

userQuery.whereKey("username", equalTo: newUsername.text)
userQuery.getFirstObjectInBackgroundWithBlock{ (object, error) -> Void in

    if error == nil {
                println(object)
                var PFRelation = PFUser.currentUser().relationForKey("friends")
                var addRelation = object
                if addRelation != nil {
                PFRelation.addObject(addRelation)
                println("new relation added")
                }
                PFUser.currentUser().saveInBackgroundWithBlock{
                  (succeeded: Bool!, error: NSError!) in

                    if error == nil {
                       println("newuser saved")
                    }
                    else {
                       println(error.userInfo)
                    }
                }
            }

    else {
            println(error)
         }
    }