2015-07-23 3 views
1

Я пытаюсь выполнить запрос к таблице User с пользователями objectId, запрошенными из другой таблицы.Запрос таблицы пользователя с объектом userId запрашивается из другой таблицы

Вот мой код:

func queryFriendsTable() { 
    var queryFriends = PFQuery(className: "Activity") 
    queryFriends.whereKey("type", equalTo: "friend") 
    queryFriends.whereKey("fromUser", equalTo: PFUser.currentUser()!) 
    queryFriends.includeKey("toUser") 

    var queryUserTable = PFUser.query() 
    queryUserTable!.whereKey("objectId", matchesKey: "toUser", inQuery: queryFriends) 
    queryUserTable!.findObjectsInBackgroundWithBlock { 
     (objects: [AnyObject]?, error: NSError?) -> Void in 

     if error == nil { 
      // The find succeeded 
      // Do something with the found objects 
      if let objects = objects as? [PFObject] { 
       for object in objects { 
        self.friendNamesArray.addObject(object["username"]!) 

        println(self.friendNamesArray) 
       } 
      } 
     } 
    } 
} 

Ничто не возвращается, когда я запускаю этот запрос. Я думаю, что проблема связана с тем, что toUserobjectId в таблице Activity является указателем, а не строкой. (Значение toUser я пытаюсь использовать в matchesKey месте является указателем)

Так как я могу получить objectId в виде строки из объекта указателя, используя метод inQuery?

ответ

1

Ваши подозрения верны. Parse не найдет указателей при просмотре класса пользователя. Вместо этого вам нужно будет создать строковую переменную и установить ее равной результату queryFriends. Итак, что это значит, вам придется сначала запустить этот запрос, вернуть указатель и получить доступ к его полю objectId в виде строки, чтобы использовать его в следующем запросе.

Смежные вопросы