相关疑难解决方法(0)

NSTimer不会停止

我有一个计时器,viewWillAppear在调用方法时触发,并在调用viewDidDisappear方法时无效.但是在视图之间进行一定量的切换之后,计时器即使在无效之后也会继续触发.有什么问题?

这是我的代码:

NSTimer *timer;

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    timer = [NSTimer scheduledTimerWithTimeInterval: 0.2f
                     target: self
                     selector:@selector( timerAction )
                     userInfo:nil
                     repeats:YES];
}

-(void)viewDidDisappear:(BOOL)animated {
    [super viewDidDisappear:animated];
    [timer invalidate];
    timer = nil;
}

-(void) timerAction
{
    NSLog(@"timerAction");
}
Run Code Online (Sandbox Code Playgroud)

iphone cocoa-touch timer

22
推荐指数
3
解决办法
2万
查看次数

如何使多次启​​动的NSTimer无效

我在Swift做了一个练习项目来学习如何NSTimer工作.启动计时器有一个按钮,一个按钮使计时器无效.当我点击每个按钮一次时,它工作正常.但是,当我多次点击开始计时器按钮时,我无法再使其无效.

在此输入图像描述

这是我的代码:

class ViewController: UIViewController {

    var counter = 0
    var timer = NSTimer()

    @IBOutlet weak var label: UILabel!

    @IBAction func startTimerButtonTapped(sender: UIButton) {
        timer = NSTimer.scheduledTimerWithTimeInterval(0.4, target: self, selector: "update", userInfo: nil, repeats: true)
    }

    @IBAction func cancelTimerButtonTapped(sender: UIButton) {
        timer.invalidate()
    }

    func update() {
        ++counter
        label.text = "\(counter)"
    }
}
Run Code Online (Sandbox Code Playgroud)

我已经看到了这些问题,但我无法从他们那里收到我的问题的答案(许多人是过去的Obj-C pre-ARC日子,其他人则是不同的问题):

nstimer ios swift

0
推荐指数
1
解决办法
1717
查看次数

标签 统计

cocoa-touch ×1

ios ×1

iphone ×1

nstimer ×1

swift ×1

timer ×1