Get SSID in Swift 2

前端 未结 10 1384
情书的邮戳
情书的邮戳 2020-12-05 05:36

Im trying to use this code to get SSID

import Foundation
import SystemConfiguration.CaptiveNetwork

public class SSID {
    class func getSSID() -> String         


        
10条回答
  •  醉话见心
    2020-12-05 06:12

    In swift 2, you don't have to call takeRetainedValue.

    Replace the code interfaces.takeRetainedValue() as [String : AnyObject] with Array(arrayLiteral: interfaces).

    Also remember change the code interfacesArray[0] as String into String(interfacesArray[0]).

    Full code :

    public class SSID {
    class func getSSID() -> String{
        var currentSSID = ""
        let interfaces = CNCopySupportedInterfaces()
        if interfaces != nil {
            let interfacesArray = Array(arrayLiteral: interfaces)
            if interfacesArray.count > 0 {
                let interfaceName =  String(interfacesArray[0])
                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
    }
    

    }

提交回复
热议问题