AVPlayer前向类声明

5

我在Storyboard中的容器视图中嵌套了一个AVPlayerViewController。使用prepareForSegue访问此播放器视频控制器。但是,当我尝试设置其player属性的任何属性时,Xcode会给出错误消息:Receiver 'AVPlayer' for class message is a forward declaration。我的.h已正确导入AVKit。我做错了什么?

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {  
    if ([segue.identifier isEqualToString:@"videoPlayerEmbed"]) {
        self.videoPlayerController = (AVPlayerViewController *)segue.destinationViewController;
        self.videoPlayerController.delegate = self;
        self.videoPlayerController.player = [[AVPlayer alloc] init];
    } else {
        [super prepareForSegue:segue sender:sender];
    }
}

2个回答

21

我理解了。我以为导入#import <AVKit/AVKit.h>就足够使用AVPlayerViewController了,但是如果你想管理AVPlayer,你还需要导入#import <AVFoundation/AVFoundation.h>


0
你是否已经导入了 AVPlayerViewController.h,即 #import "AVPlayerViewController.h"
前向声明是指当你试图向编译器不知道的类发送消息时。

我现在遇到了“AVPlayerViewController.h文件未找到”的问题。 - DemosJarco
@TechGenius 请确保您的项目 > 通用 > 链接的框架和库 中包含 AVKit.framework 和 AVFoundation.framework。 - ammianus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接