3 回答

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超10個(gè)贊
RunLoops有點(diǎn)像發(fā)生事情的盒子。
基本上,在RunLoop中,您要處理一些事件,然后返回。如果超時(shí)之前未處理任何事件,則返回。您可以說(shuō)它類似于異步NSURLConnections,它在后臺(tái)處理數(shù)據(jù)而不干擾您的當(dāng)前循環(huán),但同時(shí)您需要同步數(shù)據(jù)。可以在RunLoop的幫助下完成此操作,RunLoop使您變得異步NSURLConnection并在調(diào)用時(shí)提供數(shù)據(jù)。您可以這樣使用RunLoop:
NSDate *loopUntil = [NSDate dateWithTimeIntervalSinceNow:0.1];
while (YourBoolFlag && [[NSRunLoop currentRunLoop] runMode: NSDefaultRunLoopMode beforeDate:loopUntil]) {
loopUntil = [NSDate dateWithTimeIntervalSinceNow:0.1];
}
在此RunLoop中,它將運(yùn)行直到完成其他一些工作并將YourBoolFlag設(shè)置為false 為止。
同樣,您可以在線程中使用它們。
希望這對(duì)您有所幫助。
- 3 回答
- 0 關(guān)注
- 538 瀏覽
添加回答
舉報(bào)