最简单的情况是直接使用[NSThread sleepForTimeInterval:1.0]这样的函数,直接阻塞函数.但是这样的处理方式,只是为了显示default而已.这段时间并不能用来加载数据.
如果要在这段时间,可以加载数据的话,是不能使用sleep的,这会导致主线程的阻塞.
正常的方式应该使用runloop来处理.
大概的形式如下:
self.connectionTimer=[NSTimer scheduledTimerWithTimeInterval:1.5 target:self selector:@selector(timerFired:) userInfo:nil repeats:NO];
[[NSRunLoop currentRunLoop] addTimer:self.connectionTimer forMode:NSDefaultRunLoopMode];
do{
[[NSRunLoop currentRunLoop]runUntilDate:[NSDate dateWithTimeIntervalSinceNow:1.0]];
}while (!done);
-(void)timerFired:(NSTimer *)timer{
done = YES;
}
这里timer只是用来延时1.5秒.如果使用block的函数,可以用block来设置done的状态.