2010-01-21 72 views
15

我重新分配有幾個performSelector:withObject:afterDelay其中,選擇方法是調用另一個對象,我釋放對象的對象...我如何刪除所有performSelector:withObject:afterDelay:?

//在我班上有些地方我打電話

當跑至 EXC_BAD_ACCESS
[self performSelector:@selector(callObject1Function) withObject:nil afterDelay:2.0]; 


- (void)callObject1Function{ 
    [object1 function1] // Here i am getting "EXC_BAD_ACCESS" 
} 

- (void)dealloc { 
[object1 release]; 
[super dealloc]; 
} 

我只是不明白我認爲當你dealloc它的對象,與對象相關的一切應該被刪除或取消,即使performSelector與延遲!可一些請解釋一下,謝謝.....

回答

27

使用NSObject的:

-cancelPreviousPerformRequestsWithTarget:selector:object: 

以取消所有待進行選擇。

+18

也只是NSObject的+ cancelPreviousPerformRequestsWithTarget:如果你想消除所有的選擇器和對象執行請求到那個目標沒有指定選擇器和對象 – Bogatyr 2010-08-25 09:48:17

23

我在我的所有應用程序中使用了以下代碼,它正在工作。

[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(MethodName) object:nil]; 

謝謝, Hemang。