我正在制作一个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/

10-11 14:56