Ste*_*eve 3 iphone objective-c uitableview nsoperation ios
我正在使用TableView,该控制器从Web Feed下载数据,在此TableView中解析和填充其内容.Feed只提供10个项目的数据块.因此,例如,当有112个项目可能需要大约12个服务器请求时加载数据.我想在没有阻止用户屏幕的情况下发出这些请求,它应该按顺序加载数据,就像它不能加载第5页上的项目,除非它已经获取了前一个(1,2,3,4按照这个确切的顺序)例).
有关如何实现这一点的任何想法?
请事先提供帮助,
斯特凡
使您的Web调用异步.不要在主UI线程上进行Web调用......
例如,如果您使用ASIHttp库进行http调用(这是建立在Apple的NSURLConnection之上),那么创建异步请求就像 -
NSURL *url = [NSURL URLWithString:@"http://allseeing-i.com"];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url];
[request setDelegate:self];
[request startAsynchronous];
Run Code Online (Sandbox Code Playgroud)
当获取数据时,会调用这些选择器回调 -
- (void)requestFinished:(ASIHTTPRequest *)request
{
// Use when fetching text data
NSString *responseString = [request responseString];
// Use when fetching binary data
NSData *responseData = [request responseData];
}
- (void)requestFailed:(ASIHTTPRequest *)request
{
NSError *error = [request error];
}
Run Code Online (Sandbox Code Playgroud)
这肯定会让你的UI响应......
另请注意,仅在主线程上更新UI元素.从后台线程开始更新ui元素很容易.所以请记住......
| 归档时间: |
|
| 查看次数: |
364 次 |
| 最近记录: |