2014-11-12 2 views
3

사용자 변수에 대해 PFRelation을 설정 중이며 텍스트 필드에 텍스트를 PFRelation으로 추가하고 싶습니다. 먼저 입력 사용자 이름이 있는지 확인한 다음 반환 된 객체를 PFUser로 만듭니다. 그런 다음 PFRelation에 PFUser를 추가하려고 시도합니다. 그러면 AnyObject를 PFUser/PFObject로 다운 캐스팅 할 수 없기 때문에 충돌이 발생합니다. 그 일을 어떻게 하죠?AnyObject를 신속하게 PFObject/PFUser로 변환하는 방법은 무엇입니까?

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) 
        } 

감사합니다.

답변

0

PFObject/PFUser는 배열과 비슷하기 때문에 이해할 수 없습니다. 따라서 배열에 객체를 던질 수는 없습니다. 또한 AnyObject 대신 PFObject를 반환하므로 getFirstObjectInBackgroundWithBlock()을 사용했습니다. 차이가 있는지 확실하지 않습니다. 아래는 제 작업 코드입니다.

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) 
     } 
    } 
관련 문제