У меня есть PFQueryTableView, в котором я хочу отображать все открытые запросы друзей. У меня есть класс анализа с именем Follow, в котором есть стандартные столбцы и столбцы «от», «до» и «requestStatus». «от» и «до» - это указатели на PFUser. Теперь я запрашиваю всех пользователей, которые отправили запрос друзей текущему пользователю (в моем queryForTable). После этого я хочу, чтобы titleLabel моей ячейки отображал имя пользователя тех, кто добавил меня. Я пробовал это, как показано в следующем коде, но он всегда выдает ошибку ?! Первый print () работает и показывает мне PFUser: 0x7f9e6d809c30, objectId: 7SIxgfO00Z, localId: (null). Вторая печать (requestingUser.username) всегда приводит к сбою моего приложения! Как я могу получить имя пользователя для отображения его в моей таблице?

 override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath, object: PFObject?) -> PFTableViewCell? {

    let cell = tableView.dequeueReusableCellWithIdentifier("newFriendsCell", forIndexPath: indexPath) as! newFriendsCell

    var requestingUser = object?.objectForKey("from") as! PFUser
    print(requestingUser)
    //print(requestingUser.username)


    return cell
}
0
beginner_T 25 Дек 2015 в 20:42

2 ответа

Лучший ответ

Вам необходимо получить пользователя, прежде чем получить доступ к имени пользователя.

requestingUser.fetchInBackgroundWithBlock({ (obj: PFObject?, error: NSError?) in
    let user = obj as! PFUser
    print(user.username)
})
0
Dominic K 25 Дек 2015 в 21:26

Правильный способ решить эту проблему - добавить

query.includeKey("from")

К вашему первоначальному запросу.

Ваш

var requestingUser = object?.objectForKey("from") as! PFUser

Тогда будет иметь значение.

0
Marius Waldal 25 Дек 2015 в 23:56