0

Apple の「QA:1702:AV Foundation を使用してカメラからビデオ フレームを画像としてキャプチャする方法」は、ivar コードを追加しないと「壊れています」。

修正を見つけましたが、ivar とは何ですか? この場合、ivar は何をしているのでしょうか?

Apple の TestAVViewController.h ファイルに追加する必要があるコードは次のとおりです。

@interface TestAVViewController : UIViewController <AVCaptureVideoDataOutputSampleBufferDelegate>

@property AVCaptureSession *session;  

@end

Apple の TestAVViewController.m ファイルに追加する必要があるコードは次のとおりです。

@implementation TestAVViewController
@synthesize session=ivarSession; // this creates an ivar

これらのセクション (Apple は提供していません) を両方とも追加すると、次の行でコンパイル エラーが発生しなくなります。

[self setSession:session];

コンパイルエラーを防止している「session = ivarSession」は何をしていますか? Apple のコードが機能するのはなぜですか?

4

1 に答える 1

0

追加したコードは、メンバー変数を作成して初期化します。

コードを正しくコピーしましたか? リンク先のページで見ているバージョンsessionは、メッセージの上部で定義および初期化されており、- (void)setupCaptureSessionそれが使用されている唯一のメッセージです。これは実際にはメンバー変数ではなく、ローカル変数である必要があります。

于 2012-03-20T19:31:42.920 に答える