【发布时间】:2013-12-14 21:02:58
【问题描述】:
我有一个 UITableViewController,它正在从 NSURLConnection 加载数据:
NSURL *url = [NSURL URLWithString:@"http://url.now"];
NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:30.0];
NSOperationQueue *queue = [[NSOperationQueue alloc] init];
[NSURLConnection sendAsynchronousRequest:request queue:queue completionHandler:^(NSURLResponse *response, NSData *data, NSError *error){
if ([data length] > 0 && error == nil){
NSXMLParser *parser = [[NSXMLParser alloc] initWithData:data];
[parser setDelegate:self];
[parser parse];
}
else if (error != nil){
UIAlertView* alertView = [[UIAlertView alloc] initWithTitle:@"No internet connection" message:@"Content." delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
[alertView performSelectorOnMainThread:@selector(show) withObject:nil waitUntilDone:true];
}
}];
解析结束时,调用reloaddata方法。但是当应用程序加载时,UITableView 的内容没有显示出来。当我滚动一点时,它会立即可见。重新加载没问题。
如何解决这个问题?
【问题讨论】:
-
在viewDidLoad中,你调用
[tableView reloadData];对吗? -
我正在调用 [tableView reloadData];在解析最后一个元素时在 parserDidEndElement 中。我在viewDidLoad中也试过了,但是没有效果!
标签: ios asynchronous uitableview