我正在嘗試創建一個NSTimer,然後使其無效並釋放它,然後將其設置爲新的計時器。但是,在嘗試再次設置計時器成員變量時,我正在獲取EXC_BAD_ACCESS。下面NSTimer壞訪問
代碼:
1)I設置定時器成員VAR(它被設置爲保留)
self.mPageTimer = [NSTimer scheduledTimerWithTimeInterval:kPageTimerInterval target:self selector:@selector(pageTimerCallback) userInfo:nil repeats:NO];
2)我讓他走
[mPageTimer invalidate];
[mPageTimer release];
這將導致崩潰當我嘗試再次在第1步中調用片段時,但我不確定原因。我保留它,然後我釋放它,所以不應該照顧對象,我的成員var ok可以設置爲一個新的分配的計時器?
如果我這樣做,它不會崩潰和正常工作:
[mPageTimer invalidate];
[mPageTimer release];
mPageTimer = nil;
我不能看到我是如何做的一些錯誤釋放的對象,因爲,無論如果是這樣的情況下,我應該不能總是將我的成員var設置爲新創建的nstimer,泄漏或不是?
檢查你的代碼中的任何其他地方,你在'release'之後將消息傳遞給`mPageTimer`。因爲你可以將消息傳遞給`nil`,所以它可能不會崩潰。 – Mahesh 2011-02-17 06:35:41