继续运行脚本,直到再次单击该按钮

时间:2014-09-07 10:58:40

标签: ios objective-c for-loop

最好的,

我正在 Xcode 5.1.1 objective-c 中编写应用。

在应用程序中,现在只有一个按钮(用于测试)。 当我点击按钮时,它必须永远运行一段代码。 当我再次单击该按钮时,我希望同一段代码停止运行。 当我再次触摸它时,它又开始运行了。 我已经尝试了一个简单的for循环,但这不起作用(当然可以预测)。 当我触摸按钮时它开始运行,但随后视图变得无法使用。 我怎么能做到这一点?

3 个答案:

答案 0 :(得分:2)

您只需使用NSTimer

即可
NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(yourMethod:) userInfo:nil repeats:YES];

按钮操作" @selector"用户:

[timer invalidate];

修改

正如您可以从评论中读到的那样,使用计时器永远运行某些东西可能很危险,请确保时间间隔比运行的脚本(或代码段)长。否则,您可能会很快地使用数千个运行相同的脚本来加载CPU

答案 1 :(得分:1)

关键是在后台运行代码,这样就不会弄乱你的用户界面。您可以使用

执行此操作
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    // your code
});

答案 2 :(得分:0)

我永远不会在objective-c中开发,但是我会编写一个扩展Thread的类,然后在这个类中我会放一个volatile静态变量来指示按钮被点击了。在run方法中,我需要一个while循环,而var是false运行代码,如果它转为true退出或反之亦然。只要单击该按钮,我就会切换var并启动线程。因此,如果每隔一次点击按钮就会执行它。

我会把它写成评论但没有权限..