重新创建 NSTimer?

发布于 2024-10-27 22:48:55 字数 177 浏览 0 评论 0原文

我像这样使我的 NSTimer 无效(如我的 .h 中所定义)

if(myTimer2 != nil) { 
[myTimer2 invalidate];
myTimer2 = nil;
}

现在我将如何重新显示它(通过使用相同的名称)?

谢谢。 库尔顿

I invalidate my NSTimer like this (as defined in my .h)

if(myTimer2 != nil) { 
[myTimer2 invalidate];
myTimer2 = nil;
}

Now how will I reshow it (by using the same name)?

Thanks.
Coulton

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

浪漫之都 2024-11-03 22:48:55

假设 myTimer2 是保留属性:

if(myTimer2 != nil) { 
      [myTimer2 invalidate];
      self.myTimer2 = nil;
}
self.myTimer2 = [NSTimer timerWithTimeInterval....];

Assuming myTimer2 is a retained property:

if(myTimer2 != nil) { 
      [myTimer2 invalidate];
      self.myTimer2 = nil;
}
self.myTimer2 = [NSTimer timerWithTimeInterval....];
三生路 2024-11-03 22:48:55

关于 if 语句的两点简短说明:

  1. != nil 是多余的:Objective C 是 C(然后是一些...),这意味着所有计算结果为 < code>0 具有布尔值“NO”的含义。
  2. 在 Objecive C 中,消息传递 nil 是完全有效的。因此在这种情况下,执行此检查几乎没有什么好处。

现在,回答您的问题:
您可以像第一次设置计时器一样重新创建计时器。

理想情况下,(因为您似乎需要重复这样做)您已将计时器的设置分解为单独的方法。所以您需要做的就是再次调用该方法。

Two quick remarks on your if statement:

  1. the != nil is redundant: Objective C is C (and then some...), which means that everything that evaluates to 0 has the meaning of a boolean 'NO'.
  2. In Objecive C, messaging nilis perfectly valid. So in this case, there is very little benefit from performing this check.

Now, to answer your question:
You recreate the timer just like you set it up for the first time.

Ideally, (since you seem to need to repeatedly do so) you have factored the setup of the timer out to a separate method. So all you need to do is call that method again.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文