从NSDictionary泄漏

时间:2011-06-09 03:48:56

标签: ios nsdictionary memory-leaks

我有一个莫名其妙的泄漏。 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);

}

1 个答案:

答案 0 :(得分:0)

当对象被保留的次数超过释放时,就会发生泄漏。系统不会自动释放任何内容。您可以手动释放它,也可以自动释放它。

虽然我的猜测是runProcess方法,但我无法分辨出你的泄漏来自这个代码。

但发现这种泄漏并不能解决您的问题。您需要了解iOS内存管理。

从这里开始: