Как вы получаете userData через отправителя в Swift 4? - PullRequest
0 голосов
/ 10 июля 2019

Кажется, я не могу получить отправленные данные отправителя, не получив сообщение об ошибке «Значение« Any »не имеет подписок».

Кажется, это новая ошибка, так как я всегда так делал, и я не могу найти информацию о том, как ее исправить.

let selector = #selector(self.updatePoint(sender:))
Timer.scheduledTimer(timeInterval: 1,
                     target: self,
                     selector: selector,
                     userInfo: ["index": 3, "tempPoint": tempPoints[3]],
                     repeats: false)

@objc func updatePoint(sender: Timer) {

    guard let index = sender.userInfo?["index"] as? Int else {return} // Error: Value of 'Any' has no subscripts
    ...
}

1 Ответ

3 голосов
/ 10 июля 2019

userInfo относится к типу Any, вам нужно сначала привести его к [String:Any]

guard let info = sender.userInfo as? [String:Any],let index = info["index"] as? Int else {return}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...