утечка из NSDictionary - PullRequest
       0

утечка из NSDictionary

0 голосов
/ 09 июня 2011

У меня непонятная утечка.УТЕЧКИ говорят мне, что линия, указанная ниже, протекает.Я перефразирую, но верно.Он извлекает 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 голосов
/ 09 июня 2011

Утечка возникает, когда объект удерживается больше, чем выпущен. Система не выпускает автоматически ничего. Вы или отпускаете это вручную, или автоматически выпускаете.

Я не могу сказать, откуда ваша утечка из этого кода, хотя я предполагаю, что метод runProcess.

Но обнаружение этой утечки не решит вашу проблему. Вы должны понимать управление памятью iOS.

Начните здесь:

...