当前位置:编程学习 > wap >>

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

补充:移动开发 , IOS ,
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,