我正在尝试使用这段代码来获取SSID
import Foundation
import SystemConfiguration.CaptiveNetwork
public class SSID {
class func getSSID() -> String{
var currentSSID = ""
let interfaces = CNCopySupportedInterfaces()
if interfaces != nil {
let interfacesArray = interfaces.takeRetainedValue() as [String : AnyObject]
if interfacesArray.count > 0 {
let interfaceName = interfacesArray[0] as String
let unsafeInterfaceData = CNCopyCurrentNetworkInfo(interfaceName)
if unsafeInterfaceData != nil {
let interfaceData = unsafeInterfaceData.takeRetainedValue() as Dictionary!
currentSSID = interfaceData[kCNNetworkInfoKeySSID] as! String
let ssiddata = NSString(data:interfaceData[kCNNetworkInfoKeySSIDData]! as! NSData, encoding:NSUTF8StringEncoding) as! String
// ssid data from hex
print(ssiddata)
}
}
}
return currentSSID
}
}
但是在这一行代码中出现了错误
let interfacesArray = interfaces.takeRetainedValue() as [String : AnyObject]
错误信息为:
类型 'CFArray?' 的值没有成员 'takeRetainedValue'
感谢您的帮助
take(Un)RetainedValue()
调用,因为Swift 2中的函数不再返回非托管对象。请参见https://dev59.com/_l0a5IYBdhLWcg3wD1Lb以获取类似的问答。 - Martin R