1.首先明确通知改变UI的方法类似于android中得handler方法
[selfperformSelectorOnMainThread:@selector(updateUI)withObject:nilwaitUntilDone:YES];
其中updateUI是进行改变UI控件的执行方法
2.获取数据
创建子线程不停的获取数据
//启动子线程来获取数据
NSThread* thread = [[NSThreadalloc]initWithTarget:selfselector:@selector(run)object:nil];
[threadstart];
其中run是线程执行的方法:
start是启动线程
//子线程需要执行的方法
- (void)run
{
dictionary =[[NSMutableDictionaryalloc ] init];
while (true)
{
[NSThreadsleepForTimeInterval:0.5];
[udpClientreturnIPAndPcName:dictionary];
NSEnumerator* em = [dictionarykeyEnumerator];
id key;
while(key=[em nextObject])
{
NSLog(@"%@",key);
[ipaddObject:key];
NSLog(@"%@",[dictionaryobjectForKey:key]);
[nameaddObject:[dictionaryobjectForKey:key]];
}
[nameaddObject:@"请手动输入IP:"];
[ipaddObject:@"192.168.1.XXX"];
if (ip.count>0)
{
break;
}
}
[selfperformSelectorOnMainThread:@selector(updateUI)withObject:nilwaitUntilDone:YES];
}
3.updataUI的方法是
-(void)updateUI
{
NSLog(@"自动刷新主机列表---");
[self.tablereloadData];
}
参数说明:
其中[self.table reloadData];是UITableView的数据重新载入的方法,刚开始的时候还不知道,后面查资料终于知道了,UITableView的是初始化的时候载入数据的,所以动态刷新必须使用这个方法。
介绍完了,希望能帮助刚开始做IOS的人,本人学习没人带,靠百度,查资料相当的艰辛,以前学习windows的现在mac不习惯。