停止和重置 NSTimer

2023-12-07

我有一个简单的计时器,按下按钮即可激活它。它从 60 运行到 0 没问题,但我想要的是停止并重置按钮上的计时器。我已经设法使用下面的代码在按下按钮时停止它,但由于某种原因无法让它重置并停止在 60 处。这应该很简单,但它不起作用。有什么建议么?

使用简单的 Action 设置计时器

- (IBAction)timerStart:(id)sender {

if(!secondCounter == 0){
        [countdownTimer invalidate];
    }
    else {
           [self setTimer];
     }
}

定时器代码

- (void)timerRun {
    secondCounter = secondCounter - 1;
    int minutes = secondCounter;

    NSString *timerOutput = [NSString stringWithFormat:@"%d", minutes ];
    countDownLabel.text = timerOutput;

    if(secondCounter == 0){
        [countdownTimer invalidate];
        countdownTimer = nil;
    }
}

- (void)setTimer {
    secondCounter = 60;
    countdownTimer = [NSTimer scheduledTimerWithTimeInterval:1.0 target:self selector:@selector(timerRun) userInfo:nil repeats:YES];

}

您需要将秒设置为 0,否则您总是使计时器无效,但永远不会再次启动它:

- (IBAction)timerStart:(id)sender {
    if(!secondCounter == 0) {
        [countdownTimer invalidate];
        secondCounter = 0;
    }
    else {
        [self setTimer];
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

停止和重置 NSTimer 的相关文章

随机推荐

  • 在Python中将字符串转换为元组

    好的 我有这个字符串 tc 107 189 我需要它是一个元组 这样我就可以一次将每个数字称为一 print tc 0 needs to output 107 先感谢您 所有你需要的是ast literal eval gt gt gt fr
  • 如何在多个.cpp文件中使用全局变量?

    我有一个简单的程序 它尝试在单独的文件中打印我的全局变量 我正在使用Visual Studio 2013 专业版 IDE print h ifndef PRINT H define PRINT H void Print endif 打印 c
  • ELMAH 异常生成通用“服务不可用”消息

    我正在尝试创建一个可用性页面 该页面检查站点使用的所有服务 将每个检查包装在 try catch 中 然后向用户显示任何失败 其中一项服务是 ELMAH 因此我调用该服务是为了仔细检查我们是否可以成功记录错误 控制器 var a new A
  • 为什么 jquery 自动完成功能在 https(安全页面)上不起作用?

    我试图让 jquery 自动完成功能在 https 安全页面 页面上工作 但它没有显示任何下拉菜单 我搜索了这个问题 发现它的安全问题 谁能告诉我如何在 https 页面上打开此自动完成下拉列表 这是我的 jquery 自动完成代码 fun
  • 使用生成器作为子流程输入;出现“对已关闭文件进行 I/O 操作”异常

    我有一个大文件需要在输入另一个命令之前进行处理 我可以将处理后的数据保存为临时文件 但想避免这样做 我编写了一个生成器 它一次处理每一行 然后按照脚本将其作为输入提供给外部命令 但是我在第二轮循环中遇到了 关闭文件上的 I O 操作 异常
  • Oracle 高级队列 - 出队不起作用

    我似乎找不到解决问题的方法 我已经被困在这个问题上几个小时了 我正在使用 Oracle AQ Dbms Aqadm Create Queue Table Queue Table gt ITEM EVENT QT Queue Payload
  • 即使安装了 Pandas 模块也找不到

    我为此使用 anaconda 我已经使用两者下载了 pandas pip install pandas and conda install pandas 安装成功 再次安装显示已经安装 然而 当单独写这一行时 import pandas a
  • 将更多对象提取到实体中后核心数据关系丢失

    我有一个如下所示的核心数据模型 在表格视图中 我加载了所有约会 上一个UILabel在我里面custom cell我将约会地点名称设置如下 NSString info appointment location label vrij 起初一切
  • 通过将元素与先前元素的累积乘积相乘来创建列

    我有一个向量 df lt c 1000 1 02 1 03 1 04 1 01 我想创建一个新向量 其中包含 df 旧向量 中元素的累积乘积 新列应该看起来像 b lt c 1020 1050 6 1092 64 1103 5 基本上 新向
  • 从另一方收到不安全或不正确安全的故障

    我有一个调用 WCF 服务的 Windows 程序 该服务几次后会变得非常慢 最终会遇到此错误 再次重启后服务再次启动 真挚地 您可能没有关闭与 WCF 服务的连接 WCF 默认有 10 个连接 超时为一分钟 然后发生的事情是前 10 个点
  • 动态更改自动布局

    我必须显示 3 个标签 例如 标签1 标签2 标签3 Horizontally 我想要这 3 个标签的宽度是根据屏幕尺寸宽度均分 如何直接使用 nib 文件实现此目的 Thanks 问题2 标签1 标签2 标签3 所有标签宽度相等 所有La
  • 找不到引用的源:包

    我有这个 pubspec yaml name Dart Pages description The Dart platform dependencies web components any mongo dart any 然后我运行 工具
  • 与计算机同步互联网时间

    所以我制作了一个具有许可证检查功能的程序 该程序仅适用于有限数量的受信任的人 所以我知道他们不会尝试篡改它 我想要做的是将计算机时钟与互联网时间 例如 time windows com 或任何受信任的时间 同步 如果计算机时钟与互联网不匹配
  • 有适用于 GIT 的 PHP api 吗? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 目前不接受答案 我想知道是否有任何API或东西可以让php与GIT交互 我想在网页上打印有关分支 存储库等的信息 这可能吗 快速搜索就会找到一个 github 项目
  • 循环删除工作表

    您能告诉我为什么每隔一张工作表都会被删除 但是如果我关闭 worksheets delete 行 消息框中会显示所有工作表名称 Sub tor Dim wsz As Integer wsz Application Worksheets Co
  • TCL 数组最大大小

    我正在开发一个工程应用程序 界面是用TCL TK编写的 一切都很顺利 直到我需要使用一个 非常 大的数组 370 000 000 个元素 每个元素长度为 2 到 10 个字符 线性增长 我的问题是 TCL 阵列的大小限制在哪里 我一直在阅读
  • 使用基于注释的配置创建延迟初始化的 Spring bean

    我正在使用Spring的 Component注释来配置我的 Spring 3 0 应用程序中的许多 bean 我想知道是否可以懒惰地构建其中一些豆子 尤其是prototype beans 要声明延迟初始化的 bean 您可以使用 Lazy注
  • C++ 使用 for 循环反向打印字符串

    我有一个程序 使用 for 循环打印出字符串的字符 它还必须反向打印相同的字符 这就是我遇到问题的地方 有人可以帮我弄清楚为什么第二个 for 循环没有执行吗 int main string myAnimal cout lt lt Plea
  • 将 LineGeometry 与 EllipseGeometry 组合(在代码中,而不是 XAML)

    我正在尝试使用 WPF 创建自定义形状 对于初学者来说 我只是想创建一条简单的线 两端都有一个圆圈 我知道有 LineCaps 但这不是我要找的 我研究了一些教程 最简单的方法似乎是使用CombinedGeometry 但是我无法让它正常工
  • 停止和重置 NSTimer

    我有一个简单的计时器 按下按钮即可激活它 它从 60 运行到 0 没问题 但我想要的是停止并重置按钮上的计时器 我已经设法使用下面的代码在按下按钮时停止它 但由于某种原因无法让它重置并停止在 60 处 这应该很简单 但它不起作用 有什么建议