1.先去显示出主界面
再去获取相关数据
-》获得到数据后,再去更新主界面
-》期间要记得用更新到主界面UI的线程中:
dispatch_async(dispatch_get_main_queue(), { () -> Void in // add your code to update UI })
如此:
对于UI部分的内容的更新
-》比如设置了label的text
-》就可以立刻得到更新了
-》否则UI会要等不定期,很长时间之后,才能得到更新
详见:
后来,又将其整理出了对应的函数:
let MainThread:dispatch_queue_t = dispatch_get_main_queue() /*************************************************************************** * GCD/Queue/Thread functions ***************************************************************************/ func delayDispatch(delayTimeInSec:Double, inThread:dispatch_queue_t, thingsTodo:()->()) { let dispatchDelayTime = dispatch_time( DISPATCH_TIME_NOW, Int64(delayTimeInSec * Double(NSEC_PER_SEC)) ) dispatch_after(dispatchDelayTime, inThread, thingsTodo) } func dispatchMain_async(thingsTodo:()->()) { dispatch_async(MainThread, thingsTodo) }
调用举例:
dispatchMain_async({ let curTitle = self.normalTitle self.setTitle(curTitle, forState:UIControlState.Normal) })
更多线程方面的函数,可参考我的库: