2010-10-13 48 views
0

您好,我正在爲下面的代碼行獲取儀器中的內存泄漏。NSArray內存泄漏!無法獲得原因?

NSArray *itemsList=[[NSArray alloc] initWithObjects:@"Love", 
    @"Hate",@"Happy",@"Sad", 
    @"Desire",@"Anger",@"Hope",@"Fear",@"Silly",nil]; 

我使用下面的代碼: ArrayList中也被釋放在的dealloc塊。

NSArray *itemsList=[[NSArray alloc] initWithObjects:@"Love",@"Hate", 
    @"Happy",@"Sad",@"Desire", 
    @"Anger",@"Hope",@"Fear",@"Silly",nil]; 
self.arrayList=itemsList; 
[itemsList release]; 

回答

1

我假設arrayList@property語句中使用retain聲明。如果不是的話,那肯定是你的問題。

如果是這樣,那麼你有泄漏,但沒有在你發佈的代碼中。認識到儀器首先不一定顯示泄漏發生的位置,但泄漏內存分配的位置很重要。您將仔細查看arrayList的其他用法,並查找缺少版本的保留位置。

如果您單擊樂器中對象的內存地址旁邊的箭頭,則應該能夠在任何地方看到您的對象已被保留和釋放。您將通過它們來查看哪些保留缺少發佈。

+0

大概忘了釋放arrayList - (void)dealloc。 – 2010-10-13 06:55:22

+0

w.m:問題說「arrayList也在dealloc塊中發佈。」 – 2010-10-13 07:11:43

+0

對,對不起。一定錯過了。 – 2010-10-13 11:57:05