簡體   English   中英

NSMutableArray和屬性泄漏內存

[英]NSMutableArray and property leaking memory

我在最新的應用程序上處於內存泄漏清除模式,遇到了無法解決的問題。

除1個問題外,以下方法已清除。 儀器告訴我,在我創建對象的那一刻,我的名為itemsToKeep的NSMutableArray正在泄漏內存。 關於為什么我要泄漏內存的任何想法將不勝感激。

以下是關於restCounts的一些說明:進入方法:self.myList的retainCount = 1退出方法:self.myList的retainCount = 2且itemsToKeep的retainCount = 2。兩者的計數都減為1,但是一段時間后應用程序崩潰了(我想我知道原因)。

有誰知道我如何擺脫ItemsToKeep的內存泄漏?

謝謝。

-(void)parsedScores:(BOOL)shouldAdd {

//trim space, tab, newline from both ends
NSString *tmp = self.lblCurrentName.text;
NSString *list = [self trimString:tmp];

NSString *separators = @",";

[self.myList removeAllObjects]; // doesn't impact retain counts

self.myList = (NSMutableArray *)[list componentsSeparatedByCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:separators]]; //this bumps up the self.myList retain count to 2

NSMutableArray *itemsToKeep = [NSMutableArray arrayWithCapacity:30];    

for (NSString *item in self.myList) { 
    NSString *tmpItem = [self trimString:item];
    if (! [self shouldRemoveItem:tmpItem]) {
        [itemsToKeep addObject:tmpItem];
    }   
}

self.myList = itemsToKeep; //makes both variables' retain counts = 2

}

我看不到您提供的方法中存在泄漏,因此我認為它正在其他地方發生。 您應該檢查self.myList是否保留在其他地方而不釋放。

同樣,您可能不應該為了調試目的而查看保留計數。 保留計數可能會產生誤導,因為只要對象被釋放相等的時間,它保留多少次都無關緊要。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM