AVCaptureStillImageOutput outputSettings内存泄漏

时间:2010-08-09 07:01:41

标签: iphone memory sdk memory-leaks avfoundation

我在iPhone SDK中的新AVFoundation类中遇到了一种奇怪的行为。

我有一个用于拍照的AVCaptureStillImageOutput,我正在根据自己的喜好设置其outputSettings。代码如下:

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

(stillImageOutput属性定义为“retain”)

我偶然发现泄漏泄漏, setOutputSettings 行有100%的泄漏故障。我相信我只限于所附代码中的内存管理指南,但它仍然在泄漏。

我的解决方案是

[self.stillImageOutput setOutputSettings:nil];

在dealloc中,就在

之前
[self setStillImageOutput:nil];

泄漏确实停止了,但看起来很奇怪。 stillImageOutput 的发布是否也不应该释放其 outputSettings 属性?

无论如何,如果其他人碰到这个,我想我应该分享我的解决方案。

干杯!
俄德。

1 个答案:

答案 0 :(得分:0)

是的,释放的stillImageOutput 也应该释放它的outputSettings属性。要么它是一个Apple bug(应该让他们知道,你的用例非常简单)或删除你的行,看看你的类以外的任何东西是否挂在那个stillImageOutput对象(它持有outputSettings)上。