如果我将 MPMovieControlStyleNone 设置为 MPMoviePlayerController 的属性 controlStyle,为什么引用计数会上升 2?另外,我怎样才能释放 _player 对象?
我创建了一个继承自 UIViewController 的类。
实例变量
NSString* _movieFilename;
MPMoviePlayerController* _player;
执行
- (MPMoviePlayerController*)makeMoviePlayer:(NSString*)res {
NSURL* url = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:res ofType:@""]];
MPMoviePlayerController* player = [[MPMoviePlayerController alloc] initWithContentURL:url];
if (url == nil) return nil;
player.controlStyle = MPMovieControlStyleNone;
return player;
}
- (void)viewDidLoad
{
[super viewDidLoad];
[self.view setBackgroundColor:[UIColor blackColor]];
_player=[self makeMoviePlayer:_movieFilename];
if(_player == nil) return;
NSLog(@"[_player retainCount]=%d", [_player retainCount]);
}
实施1 如上所述的实施。实施 2 删除实施的第五行。player.controlStyle = MPMovieControlStyleNone;
结果 1
[_player retainCount]=3
结果 2
[_player retainCount]=1
在实现 2 _payer 对象可以在 [_player release] 中释放。在实现 1 中,retainCount 为 3。 [_player release] 执行后,retainCount 为 2。_player 对象不会被释放。为什么 retainCount 增加 2 ?如何释放 _player 对象?