成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

詳解Cocoa中RunLoop如何使用

移動(dòng)開發(fā) iOS
Core Foundation還定義了一個(gè)特殊的偽模式kCFRunLoopCommonModes來持有應(yīng)當(dāng)被“common”模式集共享的對(duì)象。 通過調(diào)用CFRunLoopAddCommonMode來添加一個(gè)模式到“common”模式集。

CocoaRunLoop如何使用是本文要介紹的內(nèi)容,CFRunLoop 對(duì)象監(jiān)控任務(wù)(task)的輸入源,并在它們?yōu)樘幚碜龊脺?zhǔn)備的時(shí)候調(diào)度控制。

輸入源樣例可能包括用戶輸入設(shè)備、網(wǎng)絡(luò)鏈接、定期或時(shí)間延遲事件,還有異步回調(diào)。有3類對(duì)象可以被run loop監(jiān)控:sources、timers、observers。

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

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

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

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

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

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

小結(jié):詳解CocoaRunLoop如何使用的內(nèi)容介紹完了,希望通過本文的學(xué)習(xí)能對(duì)你有所幫助!

 

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

2011-07-06 15:06:46

Xcode Cocoa

2011-08-10 18:13:01

Cocoa文字字符串

2011-07-28 11:12:25

Cocoa 內(nèi)存

2011-07-08 18:03:30

Cocoa Touch 網(wǎng)絡(luò)

2011-08-10 18:47:18

Cocoa字符串

2011-07-07 13:51:24

Cocoa 框架

2011-08-02 13:58:18

Cocoa 框架 Mac OS

2011-08-15 14:47:28

Cocoa嵌入資源文件

2011-07-28 16:52:34

Cocoa 框架 Mac Os

2011-07-26 15:29:36

Cocoa 模式

2011-08-19 10:55:16

Cocoa通知委托

2011-08-15 15:56:29

Cocoa編程模塊

2011-07-28 17:46:54

IOS Cocoa 用戶界面

2011-05-11 17:48:31

CocoaiOS

2011-08-10 16:27:07

Cocoa TouchPlist

2011-08-11 15:46:55

CocoaCocoa Touch框架

2011-07-20 14:41:53

Cocoa Zip 框架

2011-08-10 18:37:32

CocoaMac OS X

2011-07-20 14:46:59

Cocoa XML 文件

2011-05-11 15:27:58

Windows OOPCocoa MVCCocoa
點(diǎn)贊
收藏

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

主站蜘蛛池模板: av免费观看网站 | 国产午夜精品一区二区三区在线观看 | 婷婷福利 | 久久久久9999亚洲精品 | 久久亚洲一区 | 色婷婷av一区二区三区软件 | 中文字幕在线观看一区二区 | 毛片网站在线观看 | 欧美电影免费观看 | 国产成人99久久亚洲综合精品 | www.久久影视| 九九综合 | 天堂亚洲网 | 亚洲国产一区二区三区 | 久久久国产精品一区 | 免费观看毛片 | 午夜一区二区三区视频 | a毛片| 国产一区视频在线 | 色在线免费视频 | 欧美在线观看一区 | 天堂免费 | 亚洲精品888 | 精品91久久久 | 日本在线视 | 在线观看免费黄色片 | 久久精品亚洲精品国产欧美 | 亚洲成人日韩 | 国产精品精品久久久 | 精产国产伦理一二三区 | 成人国产免费视频 | 日韩一区二区在线看 | 日韩成人精品在线观看 | 欧美一区二区三区久久精品 | 国产一区成人 | 国产91av视频 | 欧美日韩视频在线 | 久久精品视频播放 | 日韩免费一区 | 国产在线一区观看 | 国产精品亚洲片在线播放 |