我正在研究Objective-C中的第一個JSON示例,並且遇到了我試圖重現的this偉大教程。在此過程中,我決定將JSON返回到我已經工作的tableView中(只是爲了確保我可以在視圖中執行某些操作)。你可以在「connectionDidFinishLoading」中設置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響應和字符串看起來有效(沒有問題,我可以看到)。
在這個「connectionDidFinishLoading」方法之前,我的tableView的數據源是否已經設置好了,或者我錯過了什麼?