Ios can';t在没有@property的情况下实现MPMoviePlayerController

Ios can';t在没有@property的情况下实现MPMoviePlayerController,ios,objective-c,mpmovieplayercontroller,Ios,Objective C,Mpmovieplayercontroller,我想要两个MPMoviePlayerController。因此,我首先在点击按钮后将其添加到动作方法中: MPMoviePlayerController *movieController= [[MPMoviePlayerController alloc] initWithContentURL: yURL]; [movieController prepareToPlay]; [movieController.view setFrame: self.view.bounds]; [self.vie

我想要两个MPMoviePlayerController。因此,我首先在点击按钮后将其添加到动作方法中:

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;
这是给我的

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

它工作得很好!谁能给我解释一下吗?如何在视图中添加多个视频播放器,就像填充一个表,其中每个单元格中都有一个播放器一样?

在第一个示例中,您在方法中声明了movieController。这意味着变量的作用域是方法,当方法结束时,变量被释放。您现在添加的子视图没有指向任何内容,因此电影播放器不会显示


当您将变量声明为属性时,它将在对象的生命周期内存在。只要对象仍然存在,就可以访问并设置其值。将值指定给属性时,其值将在方法返回后存储,因此将显示视图

哦,好的。。谢谢你的解释。但是你知道如何在一个视图中添加多个电影播放器吗?我不想全屏显示它们(这就是为什么我不使用MPMoviePlayerViewController)。在multiple中,我的意思是没有静态数字,因为我是通过服务器填充的,并且电影帖子的数量不同。你确定这是个好主意吗?如果这样做,您可能没有太多的空间来显示所有内容。为什么不使用电影的表格视图,然后在你点击该行时让MPMoviePlayerController出现?我将把它们添加到滚动视图中。因此,当用户滚动时,他将点击他想要观看的视频,他将能够观看它。(类似于Vine的UI,但不支持自动播放,因为我不希望用户在3G/4G上使用这么多兆字节)总之,你让我重新思考了一下。你的方法是可行的。