NSRunLoop概述和原理

2021-08-26 04:30:57 字數 1030 閱讀 1853

**:

1.什麼是nsrunloop?

我們會經常看到這樣的**:

1

2

3

4

5

6

7

8

9

10

-(ibaction

)start

:(id

)sender

[progress sethidden

:yes];

} 2. nsrunloop工作原理

接下來看一下nsrunloop具體的工作原理,首先是官方文件提供的說法,看圖:

通過所有的「訊息」都被新增到了nsrunloop中去,而在這裡這些訊息並分為「input source」和「timer source」 並在迴圈中檢查是不是有事件需要發生,如果需要那麼就呼叫相應的函式處理。為了更清晰的解釋,我們來對比vc++和ios訊息處理過程。

vc++中在一切初始化都完成之後程式就開始這樣乙個迴圈了(**是從戶sir mfc程式設計課程的slides中擷取):

1

2

3

4

5

6

7

8

9

intapientry winmain

(hinstance hinstance

,hinstance hprevinstance

,lpstr lpcmdline

,intncmdshow

)}}1

2

3

4

5

6

7

(...

)... }

現在會過頭來看看剛才的那個會「暫停」**的例子,有沒有更加深入的認識了呢?

NSRunLoop概述和原理

1.什麼是nsrunloop?我們會經常看到這樣的 1 2 3 4 5 6 7 8 9 10 ibaction start id sender progress sethidden yes 2.nsrunloop工作原理 接下來看一下nsrunloop具體的工作原理,首先是官方文件提供的說法,看圖 ...

NSRunLoop概述和原理

1.什麼是nsrunloop?我們會經常看到這樣的 1 2 3 4 5 6 7 8 9 10 ibaction start id sender progress sethidden yes 2.nsrunloop工作原理 接下來看一下nsrunloop具體的工作原理,首先是官方文件提供的說法,看圖 ...

NSRunLoop 概述和原理

1.什麼是nsrunloop?我們會經常看到這樣的 ibaction start id sender progress sethidden yes 這段 很神奇的,因為他會 暫停 執行,而且程式執行不會因為這裡有乙個while迴圈而受到影響。在 progress sethidden no 執行之後,...