iOS: [NSBundle mainBundle] pathForResource返回路径为nil

以下这段代码在执行时,创建的playerController总是为nil,查找原因:原来是通过[NSBundle mainBundle] 获取的路径为nil,则创建出来的playerController对象时也为nil。

#pragma mark - Lazy Loading
- (IJKFFMoviePlayerController *)playerController {
    if (_playerController == nil) {
        // 随机播放一个视频
        NSString *movieName = arc4random_uniform(10) % 2 ? @"login_video" : @"loginmovie";
        NSString *path = [[NSBundle mainBundle] pathForResource:movieName ofType:@"mp4"];
        IJKFFMoviePlayerController *playerController = [[IJKFFMoviePlayerController alloc]
                                                        initWithContentURLString:path withOptions:[IJKFFOptions optionsByDefault]];
        [self.view addSubview:playerController.view];
        [playerController.view mas_makeConstraints:^(MASConstraintMaker *make) {
            make.edges.mas_equalTo(self.view);
        }];
        // 填充模式
        playerController.scalingMode = IJKMPMovieScalingModeAspectFill;
        // 自动播放
        playerController.shouldAutoplay = NO;
        // 准备播放
        [playerController prepareToPlay];
        
        _playerController = playerController;
    }
    return _playerController;
}

解决方法: 在Targets -> Build Phases -> Copy Bundle Resources里面导入资源文件,运行项目

Snip20161116_17.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容