Непонимание ошибки «Возможная утечка объекта» - PullRequest
0 голосов
/ 10 сентября 2011
346 - NSFileManager *fileManager = [[NSFileManager alloc] init];
347 - [fileManager removeItemAtPath:[mediaSource.newMediaToDelete objectAtIndex:i] error:nil];
348 - [fileManager release];

Ошибка указывает на строку 348 и говорит:

'Потенциальная утечка объекта, выделенного на строке 347'

Я не понимаю этогоочевидно, строка 347 не является выделением, а выделение в строке 346 уже освобождено.

Ответы [ 4 ]

2 голосов
/ 10 сентября 2011

Избегайте использования 'new' или 'create' в именах ваших собственных методов (если они не возвращают объекты, которые не являются автоматически выпущенными, я думаю).Это сбивает с толку статический анализатор.У меня была эта проблема, и я обнаружил, что она исчезла, когда я изменил имя метода.

Обновление: я вижу, что Bavarious уже отметил это в комментариях.

0 голосов
/ 10 сентября 2011

Вы пытались нажать на само сообщение об ошибке?Те стрелки, которые показывают путь вашей проблемы, иногда очень полезны.Я предполагаю, что это объект mediaSource или newmediaToDelete, который вызывает сообщение.

0 голосов
/ 10 сентября 2011

Я попробовал следующий код и не получил никакого предупреждения:

  NSInteger i = 0;
    NSArray *ax = [NSArray arrayWithObjects:@"a",@"b",@"c",nil];
    NSFileManager *fileManager = [[NSFileManager alloc] init];
    [fileManager removeItemAtPath:[ax objectAtIndex:i] error:nil];
    [fileManager release];

Так должно быть с возвращенным объектом mediaSource.newMediaToDelete ...

попробуйте var assignemnt, например:

x = [mediaSource.newMediaToDelete objectAtIndex:i];

и там должно показываться ...

0 голосов
/ 10 сентября 2011

Может быть в NSArray mediaSource.newMediaToDelete объекты не являются авто-релизами?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...