您好我试图在Swift 2.0项目的类中使用NSTimer。我想在时间间隔内使用let
常量,但它总是显示错误"字符串不能转换为stringLiteralConvertible"。当我使用一个简单的数字时它可以工作,但我需要一个常量
func setupLocationUpdateInterval(seconds: Int)
{
timer?.invalidate()
timer = NSTimer.scheduledTimerWithTimeInterval(seconds, target: self, selector: "startUpdatingLocation", userInfo: nil, repeats: true)
}
答案 0 :(得分:3)
错误看起来错了。 (从Swift获得的错误信息通常与问题的真正原因完全无关,只是告诉你这条线路有问题。弄清楚它是什么修复它。&# 34;这比这样的错误更好,因为至少那时你不会认为错误信息实际上提供了有用的信息。)
.appear
方法希望间隔值为双倍。
假设我对真正的问题是正确的,你可以将你的函数更改为双精度秒,或者在调用NSTimer.scheduledTimerWithTimeInterval
时将其强制转换为双精度。
答案 1 :(得分:0)
替换行:
func setupLocationUpdateInterval(seconds: Int)
行:
func setupLocationUpdateInterval(seconds: NSTimeInterval)
或者,如果您想在某处使用let常量,请确保其类型为NSTimeInterval
。