考虑到玩家是(非原子,保留)并且使用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];
而当释放罚款只是无效,或者应该是无效的,然后释放?
请参阅[本答案](http:// stackoverflow。com/questions/8576593/objective-c-memory-management-of-instance-members/8576760#8576760)解释合成和属性发生了什么 – 2012-07-23 10:20:34