ムービープレーヤー (theMovie) を解放し、完全に解放された後に別のアクション (いわゆる playButtonClicked) を開始することを目指しています。「playButtonClicked」を 1 秒間遅らせるために performSelector を使用しましたが、うまくいきました。コードは次のとおりです。
【映画公開】; [self performSelector:@selector(playButtonClicked) withObject:nil afterDelay:1];
ただし、常に1秒遅らせたいわけではありません。「theMovie」が完全に解放されたらすぐに「playButtonClicked」を開始したいと考えています。次のコードを試してみましたが、[timer userInfo] が nil にならないため、うまくいきませんでした。ムービープレーヤーのリリースが終了したことを確認する方法を知っている人はいますか?
[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];
}
楽しみにしています。ありがとうございました。