我在 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属性吗?
无论如何,如果其他人遇到这种情况,我想我应该分享我的解决方案。
干杯!
奥德。