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)
})更多线程方面的函数,可参考我的库: