2010-10-30 80 views
0

我希望能夠調用的方法,然後,要麼等待的方法來完成做的事情,然後調用next方法調用,或者調用一個方法,等待一定的時間,然後調用一個方法。如何延遲方法調用?

上我會怎麼做,有什麼想法?

例子:

[self method1]; 
//wait for method1 to finish whatever it's doing then move onto the next line 
[self method2]; 

OR

[self method1]; 
//wait say, 500ms then move onto the next line 
[self method2]; 
+1

這是否是偶然做的所有動畫?如果是這樣,你會以錯誤的方式去做。 – jer 2010-10-30 21:10:58

+0

其實不,我不是想動畫 – cgossain 2010-10-30 21:14:11

回答

1
+0

,如果我想等第一種方法完成,那麼怎麼樣? – cgossain 2010-10-30 21:13:50

+0

performSelectorOnMainThread:withObject:waitUntilDone: – 2010-10-30 21:14:55

+0

真棒似乎是工作,唯一的問題是,我使用的是延時100ms。當我使用200ms延遲時,一切正常。有沒有一種方法可以測量完成該方法所需的時間? – cgossain 2010-10-30 22:10:05

1

如果你想確保方法已完成做它,爲什麼不要麼

a)調用method2 at方法1的端部

b)中去與performSelectorOnMainThread:withObject:waitUntilDone:由德尼茲莫特Edincik

c)中所建議的發送NSNotification在方法1的端部,以觸發方法2(你可以添加一個觀察者在方法1該通知和方法2,再刪除,如果方法1是在其他地方也叫你不想方法2觸發每次)

你不應該工作與afterDelay,依靠任何耽誤你指定的......

0

破壞你的代碼中的一半(例如成多種方法)。

... 
    [self method1]; 
    return; 
} 

- (void) secondHalf { 
    [self method2]; 
    ... 

要等待method1完成,請退出/退出/從您的代碼的第一部分返回到運行循環。有其他的東西開始你的方法的後半部分(通知,委託,計時器等)。在實例變量中保存任何需要的局部變量或其他狀態。