2013-03-21 78 views
0

我試圖讓這個runloop運行永遠的(如果不是永遠ATLEAST單日)我使用下面的函數runloop [self.runLoop runUntilDate:[NSDate dateWithTimeIntervalSinceNow:100000]];可以分配給rununtildate的runloop的最大值是多少?

的問題是,經過3 hours.Can任何應用程序崩潰幫助我嗎?

+0

你能給我們提供一些關於碰撞的更多信息嗎? – gaige 2013-03-21 08:28:12

+0

@ gaige該應用程序剛剛停止工作 – zzzzz 2013-03-21 08:33:47

回答

2

如果你希望它永遠運行(假設你已經連接定時器和/或輸入源),您可以使用

[self.runLoop run]; 

如果你想留在當前的結構,你可以使用:

[self.runLoop runUntilDate:[NSDate distantFuture]]; 

我見過蘋果使用下面的模式(例如上市Threading Programming Guide 3-14;我也看到NSOperation對象上調用,他們希望等待完成異步操作時使用此結構):

// Let the run loop process things. 
do 
{ 
    [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode 
          beforeDate:[NSDate distantFuture]]; 
} 
while (...); // in here you have whatever condition you want to check for 
+0

爲什麼我需要一個時間塊?我不需要檢查任何條件。我希望運行循環能夠永久運行。如何將我的代碼添加到我的代碼行? – zzzzz 2013-03-21 06:57:18

+0

@iOsBoy如果你想永遠運行,你可以調用'run'或'runUntilDate:[NSDate distantFuture]'(假設你已經連接了一個定時器和/或輸入源)。 while循環和'runMode'構造是有用的,如果你打算在某種情況下終止。顯然你可以使用'while(TRUE)',但其他構造可能在這一點上更有意義。 – Rob 2013-03-21 12:57:14

1

嘗試[NSDate distantFuture]。從文檔:「一個NSDate對象代表在遙遠的未來(以幾個世紀來說)的日期。」

相關問題