2013-03-05 2 views
-4

Ранее я думал, что могу ответить на этот вопрос простым подсчетом массива (моя ошибка). Я пытаюсь показать предупреждение для идентификатора пользователя, tableView не имеет никаких результатов. Я не могу просто поместить счет в метод viewDidAppear, потому что веб-запрос, который заполняет JSON и tableView, занимает несколько секунд, чтобы заполнить. Я не могу просто поместить это в:Отображать предупреждение, если tableView не имеет результатов

- (void)tableView:(UITableView *)tableView willDisplayCell:(UITableViewCell *)cell 
forRowAtIndexPath:(NSIndexPath *)indexPath { 

    if([indexPath row] == ((NSIndexPath*)[[tableView indexPathsForVisibleRows] 
    lastObject]).row){ 
    //loading complete 
    } 
} 

Потому что в этом методе ничего не вызывается, если результатов нет. У кого-нибудь есть какие-то рекомендации по этому поводу - они искали более 4 часов и вытащили почти все мои волосы.

Пожалуйста, не стесняйтесь ун-downvote это вопросы, если это было сделано больше подходит для SO - это вопросы, массивные downvotes стоили мне мою способность задавать вопросы ...

+0

Элементы NSUInteger = [количество массивов]; – samfisher

+0

Вы считаете, что подсчитали счет на этом массиве, проверьте документы, https://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Classes/NSArray_Class/NSArray.html – Cyupa

+0

'int i = [ array count]; 'где i будет подсчетом количества результатов в массиве. –

ответ

1

Вы не можете проверить количество строк в viewDidAppear, так как асинхронный NSURLConnection используется для извлечения данных в формате JSON, который заполнит. настольный вид.

Правильный способ - позвонить reloadData в connectionDidFinishLoading, после того как вы обновили свой источник данных с ответом от запроса URL. В этот момент вы знаете, что количество строк равно нулю или нет, и нет необходимости в подождать, чтобы завершить обновление таблицы.

2

NSLog ("граф массив :% d», [число массива];

Это даст Считаешь массив в консоли

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