【发布时间】:2016-10-15 04:23:37
【问题描述】:
我最近将我的应用程序从 Swift 2.3 升级到了 Swift 3.0,当我升级时,我收到了以下错误:
Type 'Dictionary<NSObject, AnyObject>?' has no subscript members
它出现的函数如下:
class func getSSIDConnectionName() -> String? {
var currentSSID: String?
let interfaces = CNCopySupportedInterfaces()
if interfaces == nil {
print("Got nil up here")
return nil
}
let interfaces2:CFArray! = interfaces
for i in 0..<CFArrayGetCount(interfaces2) {
let interfaceName: UnsafeRawPointer = CFArrayGetValueAtIndex(interfaces2, i)
let rec = unsafeBitCast(interfaceName, to: AnyObject.self)
let unsafeInterfaceData = CNCopyCurrentNetworkInfo("\(rec)" as CFString)
if unsafeInterfaceData != nil {
let interfaceData = unsafeInterfaceData! as Dictionary!
currentSSID = interfaceData["SSID"] as? String
} else {
print("Got nil down here")
return nil
}
}
return currentSSID
}
我在“当前 SSID =" 行收到错误消息。这段代码在 Swift 2.3 中运行良好,不幸的是,我不擅长标记为“不安全”的东西,所以如果答案深入到这些区域,如果你能尽可能简单地解释它,那将是最有帮助的。
感谢阅读!
【问题讨论】: