自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

iPhone開發(fā)應(yīng)用中關(guān)于CFRunLoop學(xué)習(xí)

移動開發(fā) iOS
為了接收回調(diào),首先必須通過 CFRunLoopAddSource ,CFRunLoopAddTimer , or CFRunLoopAddObserver 把這些對象放入run loop。

iPhone開發(fā)應(yīng)用中關(guān)于CFRunLoop學(xué)習(xí)是本文要介紹的內(nèi)容,CFRunLoop 對象監(jiān)控任務(wù)(task)的輸入源,并在它們?yōu)樘幚碜龊脺?zhǔn)備的時候調(diào)度控制。輸入源樣例可能包括用戶輸入設(shè)備、網(wǎng)絡(luò)鏈接、定期或時間延遲事件,還有異步回調(diào)。有3類對象可以被run loop監(jiān)控:sources、timers、observers。

當(dāng)這些對象需要處理的時候,為了接收回調(diào),首先必須通過 CFRunLoopAddSource ,CFRunLoopAddTimer , or CFRunLoopAddObserver 把這些對象放入run loop。 要停止接收它的回調(diào),你也可以稍候通過CFRunLoopRemoveSource從run loop中移除某個對象。

run loop有不同的運(yùn)行模式,每種模式都有其自身的對象集,run loop監(jiān)控,同時在該模式下運(yùn)行。 Core Foundation定義了一種默認(rèn)模式kCFRunLoopDefaultMode 來持有對象,在應(yīng)用或線程閑置的時候這些對象應(yīng)該被監(jiān)控。當(dāng)一個對象被添加到不認(rèn)識的模式時,額外模式自動創(chuàng)建。每個run loop有它自己獨(dú)立的模式集。

Core Foundation還定義了一個特殊的偽模式kCFRunLoopCommonModes 來持有應(yīng)當(dāng)被“common”模式集共享的對象。 通過調(diào)用CFRunLoopAddCommonMode 來添加一個模式到“common”模式集。 默認(rèn)模式kCFRunLoopDefaultMode  總是common模式集中的一個成員。kCFRunLoopCommonModes  常數(shù)決不會傳給CFRunLoopRunInMode 。每個run loop有它自己獨(dú)立的common模式集。

每個線程恰好有一個run loop,既不可以創(chuàng)建,也不能銷毀線程的run loop。,Core Foundation 根據(jù)需要為你創(chuàng)建。通過CFRunLoopGetMain  你可以獲得當(dāng)前線程的run loop。調(diào)用lCFRunLoopRun  來使當(dāng)前線程的run loop以默認(rèn)模式運(yùn)行起 來,直到調(diào)用CFRunLoopStop 來停止run loop。你也可以調(diào)用CFRunLoopRunInMode 來使當(dāng)前線程的run loop以指定模式運(yùn)行起來一段時間或者直到run loop被停止。 run loop只能在請求模式至少有一個source或者timer可監(jiān)控的情況下運(yùn)行起來。

run loop可以遞歸運(yùn)行,你可以在任何run loop 標(biāo)注內(nèi)部調(diào)用CFRunLoopRun  或 CFRunLoopRunInMode ,還可以創(chuàng)建嵌套run loop,并在當(dāng)前線程調(diào)用棧激活,在標(biāo)注內(nèi)并沒有限制在那種模式可以運(yùn)行。 你可以創(chuàng)建另一個run loop,激活運(yùn)行在任何可行的run loop模式,包括任何已經(jīng)運(yùn)行在調(diào)用堆棧中的更高的模式。

Cocoa 和 Carbon 每個都是建立在 CFRunLoop上來實(shí)現(xiàn)它們自己更高級別的事件循環(huán)。當(dāng)編寫一個  Cocoa 或者 Carbon 應(yīng)用,你可以添加你的sources、timer和observers到它們的run loop對象中。你的對象將會作為常規(guī)應(yīng)用事件循環(huán)的一部分來得到監(jiān)控。使用 NSRunLoop 實(shí)例方法 getCFRunLoop  來獲得對應(yīng)應(yīng)于cocoa run loop的CFRunLoop,在carbon應(yīng)用中使用 GetCFRunLoopFromEventLoop  函數(shù).

小結(jié):iPhone開發(fā)應(yīng)用中關(guān)于CFRunLoop學(xué)習(xí)的內(nèi)容介紹完了,希望本文對你有所幫助!

責(zé)任編輯:zhaolei 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2011-08-18 10:39:46

iPhone開發(fā)界面

2011-08-09 14:42:07

iPhonePCM播放器

2011-08-15 13:44:07

iPhone開發(fā)UITableView

2011-08-08 14:07:49

iPhone開發(fā) 字體

2011-08-12 09:48:24

iPhoneCoreLocatio定位

2011-08-08 10:10:14

iPhone開發(fā) 圖片 方法

2011-08-09 17:29:29

iPhone文件屏幕

2011-08-19 10:35:19

iPhone應(yīng)用Three20

2011-08-08 14:57:46

iPhone Autoreleas Property

2011-08-05 14:48:06

iPhone應(yīng)用 異步隊(duì)列

2011-07-29 13:27:48

iPhone 開發(fā) Nib

2011-08-10 17:37:00

iPhoneASIHTTPRequ

2011-08-15 17:38:48

iPhone開發(fā)調(diào)試工具

2011-07-27 11:14:37

iPhone UITableVie

2011-08-18 15:24:40

iPhone國際化

2011-08-22 14:21:24

iPhone開發(fā)UIView Anim

2011-08-22 15:15:49

iPhone開發(fā)NSMutableAr排序

2011-08-12 14:33:06

iPhone緩存文件

2011-08-15 15:44:46

iPhone開發(fā)PDF

2011-08-18 16:24:44

iPhone開發(fā)圖片
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號