0
我有一個莫名其妙的泄漏。 LEAKS告訴我下面指出的線路正在泄漏。 我是釋義,但忠實。它從文件中提取NSDictionary,然後將其發送到另一個進程。
據我所知,所有這些對象的內存都應該由OS管理。從NSDictionary泄漏
我不知道LEAKS是如何工作的,但我猜測它標誌着操作系統想要釋放「statusdict」的地步,但不能,因爲它內部沒有任何東西。但是這裏沒有任何東西沒有被這裏顯示的過程獲得。
NSDictionary *statusdict = [self readStatus];
[self runProcess:[statusdict objectForKey:@"objectname"]]; <- it leaks here
-(NSDictionary*) readStatus {
NSString *docPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *status = [[docPath stringByAppendingPathComponent:@"status.plist"] retain];
cstat = [NSDictionary dictionaryWithContentsOfFile:status];
[status release];
return (cstat);
}
包含了'runProcess'方法。 – 2011-06-09 04:00:39
Deepak得到的是如果runProcess保留字典並且從不自動釋放或釋放它,那麼這就是泄漏。 – darvids0n 2011-06-09 04:04:48
啊。這一定是它。 runProcess方法將字符串(只是字符串,而不是整個字典)傳遞給另一個永久保留的字符串。所以這行只是self.keepME = passedValue。 – adamD 2011-06-09 15:38:08