Я работаю над своим первым примером JSON в target-c и наткнулся на это замечательное руководство, которое я пытаюсь воспроизвести. По пути я решил вставить JSON, возвращенный в мой уже работающий tableView (только для того, чтобы убедиться, что я могу что-то сделать с данными в представлении).
- (void)viewDidLoad {
[super viewDidLoad];
responseData = [[NSMutableData data] retain];
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.unpossible.com/misc/lucky_numbers.json"]];
[[NSURLConnection alloc] initWithRequest:request delegate:self];
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
[connection release];
NSString *responseString = [[NSString alloc] initWithData:responseData encoding:NSUTF8StringEncoding];
[responseData release];
NSArray *luckyNumbers = [responseString JSONValue];
NSMutableString *text = [NSMutableString stringWithString:@"Nums "];
for (int i = 0; i < [luckyNumbers count]; i++)
[text appendFormat:@"%@", [luckyNumbers objectAtIndex:i]];
self.movies = [[NSArray alloc] initWithObjects:@"First", text, @"Last", nil];
}
Что я обнаружил, так это то, что когда я устанавливаю массив в "connectionDidFinishLoading", он отображается как ничто в работающем приложении - однако, если я устанавливаю это непосредственно в методе "viewDidLoad" с 3 простыми строковыми значениями, он хорошо отображается .
Когда я отлаживаю работающее приложение, я вижу ответ JSON, и строка выглядит корректно (никаких проблем, которые я вижу).
Источник данных для моего tableView уже установлен в камне до этого метода "connectionDidFinishLoading" или я что-то пропустил?