AVCaptureStillImageOutput outputSettings утечка памяти - PullRequest
3 голосов
/ 09 августа 2010

Я испытываю странное поведение в новых классах AVFoundation в iPhone SDK.

У меня есть AVCaptureStillImageOutput для фотографирования, и я устанавливаю его outputSettings по своему вкусу.Код выглядит следующим образом:

 AVCaptureStillImageOutput *stillImageOutput = [[[AVCaptureStillImageOutput alloc] init] autorelease];
[stillImageOutput setOutputSettings:[NSDictionary dictionaryWithObject:AVVideoCodecJPEG forKey:AVVideoCodecKey]];
[self setStillImageOutput:stillImageOutput];

(свойство stillImageOutput определено как «сохранить»)

Я наткнулся на утечку в утечках со 100% ошибки утечки в setOutputSettings строка.Я полагаю, что я ограничиваюсь рекомендациями по управлению памятью в прилагаемом коде, но он все еще протекает.

Мое решение было

[self.stillImageOutput setOutputSettings:nil];

в dealloc, незадолго до

[self setStillImageOutput:nil];

Утечка действительно прекратилась, но выглядит странно.Разве не следует выпускать stillImageOutput и его свойство outputSettings ?

В любом случае, если кто-то столкнется с этим, подумал, что я должен поделиться своим решением.

Ура!
Одед.

1 Ответ

0 голосов
/ 28 марта 2012

Да, освобождение stillImageOutput должно также освободить его свойство outputSettings. Либо это ошибка Apple (следует сообщить им, что ваш сценарий использования довольно прост), либо удалите строку и посмотрите, висит ли что-либо, кроме вашего класса, на этом объекте stillImageOutput (который содержит outputSettings).

...