2012-03-15 52 views
0

我在pinging應用程序中使用由蘋果提供的this類。我已經劃傷我的頭100次,但我無法得到利用線的邏輯:無法理解NS runloop的使用

[[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate distantFuture]]; 
在main.m文件

,行號:169。

這條線的用途是什麼?爲什麼我們需要運行這條線,直到self.ping得到零。 我是初學者,請耐心等待。我花了將近5個小時學習運行循環,ns計時器,但我的腦海裏一無所獲。

+0

沒有人...請幫助 – user1237220 2012-03-15 11:56:54

回答

0

我仍然沒有時間看代碼,但通常它用於保持runloop活着。主線程始終處於活動狀態,但如果您使用某種異步操作創建另一個線程,只要它開始接收回調就會死機,這樣您就可以保持線程活着。例如:假設您想要管理另一個線程上的所有異步下載操作,NSURLConnection類將根據委派模式提供異步回調。如果你在另一個線程上產生連接,只要它到達方法的結尾,線程將被關閉,並且沒有機會接收這些回調。保持這個線程活着一切都會工作。

+0

但爲什麼我們需要像這段代碼那樣無限期地運行這行代碼。爲了嘗試我的觀點,我刪除了do-while循環,並且只將這個LOC命名爲一次。它沒有工作。我比跑了兩次。它開始工作。所以,不止一次運行這個LOC使得這個邏輯能夠工作,但是如果我運行一次,它就不起作用。爲什麼會這樣?並且如果它的運行時間比爲什麼作者已經無限次地運行了兩次? – user1237220 2012-03-15 17:37:50

+0

另外,本例中只有運行的線程是主線程。所以,爲什麼我們需要運行NSrunloop – user1237220 2012-03-15 17:46:13

+0

andrea你在哪裏 – user1237220 2012-03-16 04:14:39