首页 > 解决方案 > 如何通过 Swift 4 中的发件人检索 userData?

问题描述

如果没有收到错误“'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
    ...
}

标签: swiftselectoruser-datasender

解决方案


userInfoAny您需要先将其转换为的类型[String:Any]

guard let info = sender.userInfo as? [String:Any],let index = info["index"] as? Int else {return}

推荐阅读