IOS中UITableView子线程改变UI线程的实例

1.首先明确通知改变UI的方法类似于android中得handler方法

 [self performSelectorOnMainThread:@selector(updateUI) withObject:nil waitUntilDone:YES];

其中updateUI是进行改变UI控件的执行方法

2.获取数据

创建子线程不停的获取数据

 //启动子线程来获取数据

    NSThread* thread = [[NSThread alloc]initWithTarget:self selector:@selector(run) object:nil];

    [thread start];

其中run是线程执行的方法:

start是启动线程

//子线程需要执行的方法

- (void)run

{

    dictionary =[[NSMutableDictionary alloc ] init];

    while (true)

    {

            [NSThread sleepForTimeInterval:0.5];

            [udpClient returnIPAndPcName:dictionary];

            NSEnumerator*  em = [dictionary keyEnumerator];

            id key;

            while(key=[em nextObject])

            {

                NSLog(@"%@",key);

                [ip addObject:key];

                NSLog(@"%@",[dictionary objectForKey:key]);

                [name addObject:[dictionary objectForKey:key]];

            }

            [name addObject:@"请手动输入IP"];

            [ip addObject:@"192.168.1.XXX"];

            if (ip.count>0)

           {

               break;

           }

    }

    [self performSelectorOnMainThread:@selector(updateUI) withObject:nil waitUntilDone:YES];

}



3.updataUI的方法是

-(void)updateUI

{

    NSLog(@"自动刷新主机列表---");

    [self.table reloadData];

}

参数说明:

其中[self.table reloadData];是UITableView的数据重新载入的方法,刚开始的时候还不知道,后面查资料终于知道了,UITableView的是初始化的时候载入数据的,所以动态刷新必须使用这个方法。

介绍完了,希望能帮助刚开始做IOS的人,本人学习没人带,靠百度,查资料相当的艰辛,以前学习windows的现在mac不习惯。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值