2015-07-22 3 views
0

Я пытаюсь обновить метку имени пользователя из информации в синтаксическом анализе. Я не могу понять и долгое время боролся с тем, что это не работает.Использование объектов ошибки неразрешенных идентификаторов

let query = PFUser.query()! 
    query.whereKey("objectId", equalTo: (quote["publisher"] as! String)) 
    query.getFirstObjectInBackgroundWithBlock({ (user: PFObject?, error: NSError?) in 
      if error == nil{ 
      let user:PFUser = (objects as NSArray).lastObject as! PFUser//error here 
      cell.publisherLabel.text = user.username 
     } 
    }) 

ошибка я получаю использование неразрешенного идентификатора «объекты»

ответ

0

Вы не возвращая массив в этом закрытии, вы возвращение опционального PFObject.

let query = PFUser.query()! 
query.whereKey("objectId", equalTo: (quote["publisher"] as! String)) 
query.getFirstObjectInBackgroundWithBlock({ (user: PFObject?, error: NSError?) in 
     if error == nil{ 
     if let foundUser = user as? PFUser { 
     cell.publisherLabel.text = foundUser.username 

    } 
} 
}) 

// Обновленный

func someFunc() { 

    let query = PFUser.query() 
    query?.getObjectInBackgroundWithId("objectId", block: { (foundUser: PFObject?, error: NSError?) -> Void in 

     if let user = foundUser as? PFUser { 

      cell.publisherLabel.text = user.username 
     } 

    }) 

} 

Вам не нужен запрос, просто получить указатель от объекта вы имеете и вызвать fetchIfNeeded или в фоновом режиме или же вы хотите иметь дело с ним. Пример:

var myObject = existingObjectWithPointer["pointerColumnName"] as? PFObject 
myObject.fetchIfNeeded() 
+0

если я делаю что я получаю сообщение об ошибке SIGABRT, который говорит, что я не мог бросить PFUser к NSString –

+0

Вы добавив .username? Также обновлять ответ с тем, что, по моему мнению, является более чистым запросом. –

+0

Я обновил его с помощью более чистого запроса .. здесь нет ошибок компилятора, но мой ярлык отсутствует, когда я его запускаю. –

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