2015-12-15 4 views
0

Я прочитал соответствующие вопросы по этой теме и читал на семафорах, но я еще не понял их.Swift 2.0/Parse - Query не заканчивается достаточно быстро, поэтому сбой приложения при запуске

Вот моя проблема - я загружаю информацию из Parse в свой табличный просмотр и использую подсчет этой информации, чтобы определить, сколько строк должно иметь мое табличное представление. Ниже приводится функция Tableview:

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 

    return parseObjects.count //parseObjects is obviously an array 
} 

Этот код постоянно возвращается сообщение об ошибке: «найдено ноль значение ...»

Примечание: Я звоню запрос на parseObjects в viewDidLoad(), и это первый бит кода, который должен выполняться. Я сделал несколько приложений с использованием Parse, но не понимаю, почему я столкнулся с этой ошибкой. Любые примеры/объяснения кода будут высоко оценены.

ответ

2

Похоже, что parseObjects еще не инициализирован, когда загружается ваш рабочий стол. Прежде чем пытаться получить доступ к этим данным, перед отправкой необходимо выполнить проверку на parseObjects. Когда ваша асинхронная задача завершается, звоните tableView.reloadData()

func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
    return (parseObjects != nil) ? parseObjects.count : 0 
} 
+0

Я вижу ... это то, что я ищу. вы объясните, что "(parseObjects! = nil)? parseObjects.count: 0" означает? Я предполагаю, что это примерно означает «если что-то не готово, не делайте этого еще (и дождитесь его?)» ... еще раз спасибо! –

+0

Это сокращение для «если' parseObjects' не равен нулю, используйте счетчик parseObjects. В противном случае используйте 0. Часть «wait it it» возникает, когда вы вызываете «tableView.reloadData» после завершения вашей выборки (потому что только то есть 'parseObjects' заполняется). – BenJammin

+0

Я продолжаю возвращаться к этому решению, и я его не понимаю. В частности, где/когда вызывать reloaddata .... вы бы опубликовали (или пришлите мне) действительно простой пример асинхронный код задачи и когда вы все называете? –