可能重复:
如何以编程方式暂停NSTimer?
我有个问题.如何使用计时器暂停倒计时?我正在开发一款游戏.在游戏中,我需要在计时器暂停时进入下一个视图,并在返回后我想恢复它.
我在视图中尝试此代码:
[mytimer pause];
// to resume
[mytimer resume];
Run Code Online (Sandbox Code Playgroud)
我尝试了那段代码,但是我收到一条警告:"NSTimer可能无法响应'暂停'"
我建立了这个警告,当我按下暂停按钮时,应用程序崩溃了.
NSTimer确实没有恢复和暂停方法,因此在发生此类警告后,您最终可能会在运行时崩溃.通常,您可以创建两种计时器(请参阅NSTimer类引用),一种只执行一次,第二次重复执行.例:
这样你就可以创建一个计时器,每秒都会输入一次回调myMethod.
NSTimer *myTimer = [NSTimer scheduledTimerWithTimeInterval:1
target:self
selector:@selector(myMethod:)
userInfo:nil
repeats:YES];
Run Code Online (Sandbox Code Playgroud)
你可能会选择这个为你的目的,你班上应该保留一些
BOOL pause
变量和回调myMethod执行以下操作:
- (void) myMethod:(NSTimer *) aTimer
{
if (!pause) {
// do something
// update your GUI
}
}
Run Code Online (Sandbox Code Playgroud)
您在代码中的某处更新暂停的位置.要停止计时器(并释放它),请致电
[myTimer invalidate];
Run Code Online (Sandbox Code Playgroud)
祝好运
归档时间: |
|
查看次数: |
10749 次 |
最近记录: |