Я только что закончил прорабатывать это сегодня, и вот последовательность событий, которые я наблюдал:
- Ваше табличное представление не будет загружено ничем, потому что ваши массивы ничего не содержат
- Ваш поток будет идти и получать данные Twitter
- Ваше табличное представление будет обновлено данными Twitter [self.tableView reloadData]
Если вы похожи на меня, вы пытаетесь установить имя пользователя, используя что-то похожее на
cell.textLabel.text = [[userInfo objectAtIndex:indexPath.row] valueForKey:@"name"];
Я думаю, что, поскольку он очень специфичен, приложение действительно пытается его найти и не возвращает ноль, если ничего не находит, в отличие от кода в примере, который
cell.text = [photoNames objectAtIndex:indexPath.row];
... поэтому ваше приложение выдает ошибку при первой попытке загрузки данных с пустыми массивами.
Способ, который я обошел, заключается в создании массива, который загружает имена пользователей из списка свойств в самом начале, чтобы я знал, сколько записей должно быть в моем массиве содержимого. Ключевой частью является создание условия перед настройкой ячейки, чтобы вы знали, что у вас есть вся необходимая информация, например ...
// Set up the cell...
if ([userInfo count] == [userList count]) {
userInfo - это мой массив словарей с данными, полученными из Twitter.
userList - мой массив значений из списка свойств.