不明确地使用下标错误

时间:2016-01-22 15:58:32

标签: ios swift

我读到了这个错误,我知道当编译器不知道它需要返回什么类型时它会发出警报,但是这个错误没有出现在前面,我不知道为什么它会出现在今天。

这是我的代码:

func animateCounter(from: Int, to: Int) {
    timer = NSTimer.scheduledTimerWithTimeInterval(duration, target: self, selector: "increaseCounter", userInfo: ["from": from, "to": to], repeats: false)
}

func increaseCounter() {
    let from = timer.userInfo!["from"] as! Int
    let to = timer.userInfo!["to"] as! Int
}

我设置我的fromto变量是整数,为什么我会收到此错误?

1 个答案:

答案 0 :(得分:0)

首先将userInfo转换为Optional([String:AnyObject]),然后将userInfo["from"], userInfo["to"]转换为Optional(Int)

你需要自己解开结果:)

func increaseCounter() {
    let userInfo = timer.userInfo as? [String: AnyObject]
    if let dict = userInfo {
        let from = dict["from"] as? Int
        let to = dict["to"] as? Int
    }
}