2011-09-12 50 views
0

我可以在這個上使用一點幫助。我通過在dealloc中註釋release語句來將崩潰源縮小到NSMutableArray viewControllers。EXC_BAD_ACCESS Mystery

代碼:

NSMutableArray *controllers = [[NSMutableArray alloc] init]; 
for (NSInteger i = 0; i < self.numSlides; i++) { 
    [controllers addObject:[NSNull null]]; 
} 

self.viewControllers = controllers; 
[controllers release]; 

// Later on in dealloc: 
[viewControllers release], viewControllers = nil; 

在main.m文件[INT retVal的= UIApplicationMain(的argc,argv的,零,無); ]我們得到: 編程接收到的信號:「EXC_BAD_ACCESS」

當我註釋了viewControllers的發佈 - >沒有崩潰但內存泄漏。

你在那裏歐比旺 - 你是我們最後的希望。

在此先感謝您的幫助。

回答

0

您發佈的代碼看起來不錯;沒有看到其餘任何部分,我猜你的viewControllers屬性被聲明爲assign而不是retain。如果不是這樣,嘗試運行靜態分析器(Product> Analyze或Cmd-Shift-B);它通常會遇到這樣的問題。

+0

感謝諾亞 - 在發佈之前嘗試過無效。這是個好主意。分析儀沒有給出任何答案,但儀器給了我一個殭屍。 – robMontesinos

+0

現在我在這個線上的儀器上發生內存泄漏,如果我註釋掉[viewControllers release],viewControllers = nil;在Dealloc。 NSMutableArray * controllers = [[NSMutableArray alloc] init];這非常奇怪 - 我已經看到許多關於這個問題的文章,但是從來沒有一個解決方案能夠通過儀器上的泄漏測試 - 靜態分析器沒有提到它。任何幫助,將不勝感激。 – robMontesinos