我正在制作一个iPhone应用程序,并已安排一个名为gameOver的事件在15秒后(游戏结束时)发生。
[self performSelector:@selector(gameOver) withObject:nil afterDelay:15.0];
我如何取消安排此事件的时间,以便如果有人想按重置按钮并重新开始游戏,则将删除此安排的事件,并创建另一个事件。
最佳答案
我会使用NSTimer
retain
-属性NSTimer *myTimer
-(void) startTimer
{
self.myTimer = [NSTimer scheduledTimerWithTimeInterval:myDelay target:self selector:@selector(myTimerExpiredMethod:) userInfo:nil repeats:NO];
}
-(void) myTimerExpiredMethod:(id)aSender
{
NSLog(@"timer expired");
self.myTimer = nil;
}
-(void) cancelTimer
{
[self.myTimer invalidate];
self.myTimer = nil;
}
关于iphone - 如何在Objective-C中取消先前安排的事件?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7787049/