没有@property就无法实现MPMoviePlayerController

时间:2013-09-02 01:53:44

标签: ios objective-c mpmovieplayercontroller

我想要两个MPMoviePlayerControllers。所以我开始在点击按钮后在动作方法中添加它:

MPMoviePlayerController *movieController= [[MPMoviePlayerController alloc] initWithContentURL: yURL];
[movieController prepareToPlay];
[movieController.view setFrame: self.view.bounds];  
[self.view addSubview: movieController.view];
[movieController play];

这不起作用!我正在遵循这种方法,以便我可以在同一视图上添加另一个玩家。但是当我尝试将其添加到.h

@property (nonatomic, strong) MPMoviePlayerControllers *moviePlayer;

,这到.m

self.movieController= [[MPMoviePlayerController alloc] initWithContentURL: yURL
[self.movieController.view setFrame: self.view.bounds]; 
[self.view addSubview: self.movieController.view];
[self.movieController play];

它完美无缺!任何人都可以向我解释一下吗?如何在一个视图中添加多个视频播放器,就像填充每个单元格中有一个播放器的表格一样?

1 个答案:

答案 0 :(得分:1)

在第一个示例中,您将在方法内声明movieController。这意味着变量的范围是方法,并且当方法结束时,变量被解除分配。您现在添加的子视图不指向任何内容,因此电影播放器​​不会显示。

当您将变量声明为属性时,它将存在于对象的生命周期中。只要对象仍然存在,您就可以访问和设置其值。将值分配给属性时,将在返回方法后存储其值,以便显示视图。