Я делаю запрос Twitter для данных API с помощью:
TWRequest *postRequest = [[TWRequest alloc] initWithURL:[NSURL URLWithString:@"http://search.twitter.com/search.json?q=a2zwedding&include_entities=true"] parameters:nil requestMethod:TWRequestMethodGET];
то я получаю всю обработку запроса с помощью:
[postRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error) {
// NSString *output;
NSArray *results;
if ([urlResponse statusCode] == 200) {
NSError *jsonParsingError = nil;
NSDictionary *publicTimeline = [NSJSONSerialization JSONObjectWithData:responseData options:0 error:&jsonParsingError];
results = [publicTimeline objectForKey:@"results"];
}
[self performSelectorOnMainThread:@selector(populateTable:) withObject:results waitUntilDone:YES];
}];
Затем я пытаюсь отобразить «результаты» в UITableView. Мой делегат и источник данных — это тот же контроллер представления, который обрабатывает данные JSON. Мой метод источника данных:
- (NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section
возвращает ноль, если я пытаюсь подсчитать свой массив, потому что мой синтаксический анализ JSON не завершен, когда это вызывается. Если я «верну 1» с помощью этого метода, он правильно отобразит один из результатов моего запроса в Твиттере. Однако, если я использую reloadData, мое приложение падает. Я не могу заставить его отсрочить счет. Есть идеи?