gpt4 book ai didi

objective-c - NSTimer 在被告知时不会重复触发

转载 作者:搜寻专家 更新时间:2023-10-30 19:51:03 24 4
gpt4 key购买 nike

以下只执行一次。当 repeat 设置为 YES 时,为什么会这样?

NSTimer *timer = [NSTimer timerWithTimeInterval:1/3 target:self 
selector:@selector(updateThingsRepeatedly:) userInfo:nil repeats:YES];

[timer fire];

如果我理解正确,updateThingsRepeatedly 方法应该每 1/3 秒重复调用一次。这不对吗?

不过,它确实调用了方法一次,但没有像我预期的那样启动循环。

最佳答案

1/3 的计算结果为 0。将其替换为 1.0/3.0 即可。

这是处理数字的 C 方式。您必须向编译器提示所需的表达式类型。 1/3是一个整数除法,结果是一个整数。 1.0/3.0double1.0f/3.0ffloat。您可以通过强制转换实现相同的效果:(double)1/(double)3

NSTimer 可以设置为在 0 秒后触发,这意味着它将在运行循环结束时触发一次。

关于objective-c - NSTimer 在被告知时不会重复触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8982074/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com