我有一个莫名其妙的泄漏。 LEAKS告诉我,下面所示的线路正在泄漏。 我是在解释,但忠实地说。它从文件中提取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);
}
答案 0 :(得分:0)
当对象被保留的次数超过释放时,就会发生泄漏。系统不会自动释放任何内容。您可以手动释放它,也可以自动释放它。
虽然我的猜测是runProcess方法,但我无法分辨出你的泄漏来自这个代码。
但发现这种泄漏并不能解决您的问题。您需要了解iOS内存管理。
从这里开始: