如果我调用[self requestData];
from viewDidLoad 我的表会很好地填充数据。如果我移动[self requestData];
到 viewDidAppear 方法,表仍然是空的。
另外,我不完全确定是否 [self.mainTableView reloadData];
有效。我正在尝试将数据请求和处理移至 viewDidAppear 方法,因为我在代码示例中看到了该模式,并认为它可能会加快我的应用程序启动速度。目前,从应用启动 Default.png 到 rootViewController 存在相当大的延迟。
感谢您对此的任何帮助。
-(void)viewDidAppear:(BOOL)animated
{
[self requestData];
}
-(void)requestData {
[HUD showUIBlockingIndicatorWithText:@"Fetching JSON"];
NSError *requestError = nil;
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL
URLWithString:kURL]];
NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:&requestError];
NSError *jsonParsingError = nil;
if (requestError)
{
NSLog(@"sync. request failed with error: %@", requestError);
}
else
{
// handle data
publicData = [NSJSONSerialization JSONObjectWithData:response
options:0
error:&jsonParsingError];
publicDataArray = [publicData objectForKey:@"data"];
}
/*
for(publicDataDict in publicDataArray) {
NSLog(@"data output is %@",[publicDataDict objectForKey:@"title"]);
}
*/
[self.mainTableView reloadData];
NSLog(@"reload table cat id %@", categoryString);
[HUD hideUIBlockingIndicator];
}