0
我在我的最新應用程序的內存泄漏清理模式,並遇到了我無法解決的問題。NSMutableArray和屬性泄漏內存
以下方法已被清理,除了1個嘮叨問題。儀器告訴我,我的NSMutableArray名爲itemsToKeep泄漏內存,在我創建對象的時候。任何想法,爲什麼我泄漏內存將不勝感激。
下面是關於retainCounts一些註釋: 進入方法:self.myList具有retainCount = 1 退出方法:self.myList具有retainCount = 2和itemsToKeep具有retainCount = 2 我可以很容易地做一[itemsToKeep發佈]在最終使兩個計數降到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 - 沒有想過這件事。它通常作爲一個屬性添加並在dealloc中進行掃描。但可能還有其他地方保留下來。另外,謝謝你的觀點:保留點數。 – Ferris 2009-12-27 07:51:23