【问题标题】:AVCaptureStillImageOutput outputSettings memory leakAVCaptureStillImageOutput outputSettings 内存泄漏
【发布时间】:2011-03-27 03:49:29
【问题描述】:

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

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

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

(stillImageOutput 属性定义为“保留”)

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

我的解决办法是

[self.stillImageOutput setOutputSettings:nil];

在dealloc中,就在

之前
[self setStillImageOutput:nil];

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

无论如何,如果其他人遇到这种情况,我想我应该分享我的解决方案。

干杯!
奥德。

【问题讨论】:

标签: iphone memory sdk memory-leaks avfoundation


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-08
    • 2013-01-20
    • 2011-10-31
    • 2019-08-10
    • 2013-06-24
    • 2011-03-22
    • 2015-04-20
    相关资源
    最近更新 更多