0

Apple 的“ QA:1702:How to capture video frames from the camera as images using AV Foundation ”在没有额外 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”是什么?为什么它能让苹果的代码工作?

4

1 回答 1

0

您添加的代码创建并初始化了一个成员变量。

你确定你复制的代码正确吗?我在您链接到的页面上查看的版本已session在消息顶部定义和初始化,- (void)setupCaptureSession这是唯一使用它的消息。这确实应该是局部变量,而不是成员变量。

于 2012-03-20T19:31:42.920 回答