我的目标是释放一个电影播放器(theMovie),然后在它完全释放后开始另一个动作(所谓的 playButtonClicked)。我使用 performSelector 将“playButtonClicked”延迟 1 秒,效果很好。代码是:
[电影上映];[self performSelector:@selector(playButtonClicked) withObject:nil afterDelay:1];
但是,我不想总是延迟 1 秒。我想在“theMovie”完全发布后立即启动“playButtonClicked”。我尝试了以下代码,但它不起作用,因为 [timer userInfo] 永远不会是零。有谁知道如何检查电影播放器的发布是否完成。
[theMovie release];
//[self performSelector:@selector(playButtonClicked) withObject:nil afterDelay:1];
NSTimer *atimer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self
selector:@selector(waitForReleaseFinish:)
userInfo: (MPMoviePlayerController*) theMovie repeats:YES];
waitForRleaseFinish: (NSTimer *)timer 的代码为:
if ([timer userInfo]==nil) //here I actually want to test if (theMovie==nil),but I don't know how to do and I'm not sure if it is a correct way to determine the release finished.
{
[timer invalidate];
[self playButtonClicked];
}
期待帮助。谢谢你。