我在NSTimerInterval的表达式中得到整数溢出,这实际上是双倍的。
NSTimerInterval paymentTermsInMilliSeconds = 30 * 24 * 60 * 60 * 1000;
在iPhone中处理计时器间隔的最佳方法是什么?
答案 0 :(得分:2)
这很可能是因为正在对整数执行计算而产生的,这会产生整数结果。请尝试使用双精度值。
编辑:我刚检查过,这正是发生的事情。如果将计算更改为:NSTimeInterval paymentTermsInMilliSeconds = 30.0 * 24.0 * 60.0 * 60.0 * 1000.0;
,则代码将提供正确的值“2592000000”。否则,您最终会出现溢出,结果为“-1702967296”。
答案 1 :(得分:1)
你可能意味着NSTimeInterval
。这通常是以秒为单位的时间间隔。要使用毫秒,请使用0.001秒(毫秒)。
答案 2 :(得分:0)
使用,
NSTimerInterval paymentTermsInMilliSeconds = 30 * 24 * 60 * 60 * 1000.0;
希望,能解决问题。