我想要什么:
1)UIImageViews中的4个拼图图像,我可以四处移动
2)解决谜题之后我想要显示2个图像而不是谜题:第一个在谜题解决之后,第二个在第一个图像后2秒......
我有什么:
1)如果你正在快速地解决一个又一个拼图,你可能会陷入NSTimer间隔,这会将这两个图像交换得太快,比如0.1秒后不是2.0
有没有办法解决NSTimer,不干扰已经解雇过的?
解决方案(?):我正在考虑阻止互动,因此会出现第二张图片,但这似乎是一种糟糕的解决方法。
答案 0 :(得分:2)
您应该保留对此计时器的引用(作为属性或作为iVar)。
如果您想取消它,只需致电[myTimer invalidate]; myTimer = nil;
。
编辑:
如果您没有保留对计时器的引用(如果您是在代码块内从头开始创建它),则始终存在创建多个实例的危险......
答案 1 :(得分:1)
写setter方法,像这样。每当你需要取消计时器
self.myTimer = nil;
- (void)setMyTimer:(NSTimer *)inTimer
{
if (inTimer != mMyTimer)
{
[mMyTimer invalidate];
[mMyTimer release];
mMyTimer = [inTimer retain];
}
}
希望这对你有用。