iphone开发:线程刷新reloadData
在开发过程中,遇到需要加载一些庞大数据,比如:可能会频繁的请求网络,显示图片
而我们不可能等待所有的图片加载完成后再去刷新表视图!!
如何解决?个人尝试了好几次线程的问题。终于解决。就是在子线程中给主线程发送消息!
个人做法是这样:
首先显示n张图片,n不是太大。这里n=5.然后多出n的图片放在子线程中处理完成后加载。
if([array count]>5)
{
[self performSelectorInBackground:@selector(show_list_item_in_background:) withObject:array];
}
但是我想在每M张图片的时候就刷新一下表视图。这时候需要这样做:
- (void)show_list_item_in_background:(NSArray*)array
{
intindex = 5;
intsecond_run = [array count];
while(index < second_run)
{
NSDictionary *dictionary = [array objectAtIndex:index];
[self get_and_show_more:dictionary];
index++;
if(index > 5&& index % 5== 0)
{
[self performSelectorOnMainThread:@selector(reload_table_view_on_main_thread) withObject:nilwaitUntilDone:NO];
}
}
[table_view reloadData];
[activity_view stopAnimating];
}
主线程调用reload_table_view_on_main_thread方法即可对表视图进行刷新。
- (void)reload_table_view_on_main_thread
{
[table_view reloadData];
}
摘自 云怀空-abel
相关新闻>>
- 发表评论
-
- 最新评论 更多>>