[英]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.