假设播放器是(非原子的,保留),并且使用 player = _player 合成,以下哪种场景是正确的编码实践。
方案 A
MPMoviePlayerController *mp = [[MPMoviePlayerController alloc] initWithContentURL:movieURL];
self.player = mp;
[mp release];
方案 B
MPMoviePlayerController *mp = [[MPMoviePlayerController alloc] initWithContentURL:movieURL];
self.player = mp;
到目前为止,我一直使用场景 A 作为一般做法,但我认为这可能会导致我的代码中出现内存泄漏。
谢谢你的帮助。
编辑1:
定时器也是如此,它们给我带来了真正的麻烦。如果我使用下面的代码,这是正确的吗?如果 timerMap 也是(nonatomic,retain),并且使用 timerMap = _timerMap;
self.timerMap = [[NSTimer scheduledTimerWithTimeInterval:fps target:self selector:@selector(updateAnimationTimer) userInfo:nil repeats:YES] autorelease];
发布时是否可以仅使无效,或者应该先无效然后释放?