2010-09-14 71 views

回答

12

多在這裏選擇。

如果你只是想爲2秒的延遲,你可以使用睡眠()函數

#include<unistd.h> 
... 
sleep(2); 

或者您可以使用的NSTimer像這樣

[NSTimer scheduledTimerWithTimeInterval:2.0 target:self selector:@selector(fireMethod) userInfo:nil repeats:NO]; 

而在你的類,你會有一個方法定義爲

-(void)fireMethod 
{ 
//Do stuff 
} 
+0

似乎你不需要明確地包括unistd 。H。 Xcode 5似乎爲你做到了。不知道如何。 – Brenden 2013-12-19 23:32:18

4

在這裏你去...

[NSTimer scheduledTimerWithTimeInterval:2 
            target:self 
            selector:@selector(action) 
            userInfo:nil 
            repeats:NO]; 
-1

請注意,您不應該真的在考慮延遲在事件驅動的用戶界面/ OS。你應該考慮你現在想做的任務,以及你想要做的任務,並且編寫這些子任務並且適當地安排它們。例如而不是:

// code that will block the UI when done in the main thread 
- (void) methodC { 
    doA(); 
    delay(2); 
    doB(); 
} 

你可能想有一些代碼看起來更像是:

- (void) methodA { 
    doA(); 
    return; // back to the run loop where other useful stuff might happen 
} 

- (void) methodB { 
    doB(); 
} 

然後你可以在了methodA的結束與一個NSTimer安排的methodB,一個NSTimer開始通過什麼叫了methodA ,或者最好的選擇,通過methodA啓動的異步完成例程。

1

簡單的答案:[NSThread sleepForTimeInterval:10.0];