3

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プロパティも解放されるべきではありませんか?

とにかく、他の誰かがこれに遭遇した場合は、私の解決策を共有する必要があると思いました.

乾杯!
オデッド。

4

1 に答える 1

0

はい、stillImageOutput解放すると、outputSettings プロパティも解放されます。それはAppleのバグです(彼らに知らせる必要があります。ユースケースは非常に単純です)か、行を削除して、クラス以外のものがその stillImageOutput オブジェクト(outputSettingsを保持している)にぶら下がっているかどうかを確認します。

于 2012-03-28T14:38:39.673 に答える