Im próbuje użyć tego kodu, aby uzyskać SSIDGet SSID w Swift 2
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
}
}
Ale otrzymuję błąd w tej linii let interfacesArray = interfaces.takeRetainedValue() as [String : AnyObject]
Błąd znajduje
Value of type 'CFArray?' has no member 'takeRetainedValue'
Dziękujemy za pomoc
Mo prawdopodobnie, możesz po prostu usunąć wywołania 'take (Un) RetainedValue()', ponieważ funkcja ta nie zwraca już obiektów niezarządzanych w Swift 2. Zobacz http://stackoverflow.com/questions/30740000/withunsafepointer-in-swift -2 dla podobnych pytań i odpowiedzi. –
Usunąłem .takeRetainedValue(), ale teraz otrzymuję EXC_BREAKPOINT (EXC_ARM_BREAKPOINT, subcode = 0xe7ffdefe), gdy próbuję przetestować kod –
Niestety nie mogę ci w tym pomóc. Nie mam sieci przechwytującej, aby przetestować kod. –