Obtenir le SSID dans Swift 2
Im essayant d'utiliser ce code pour obtenir le 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
}
}
Mais en avoir une erreur dans cette ligne
let interfacesArray = interfaces.takeRetainedValue() as [String : AnyObject]
L'erreur est
Value of type 'CFArray?' has no member 'takeRetainedValue'
Merci pour votre aide
source d'informationauteur Oswaldo Rodriguez
Vous devez vous connecter pour publier un commentaire.
Cela peut vous aider (testé sur Swift 2):
Je l'ai pris et l'a adapté le code de Ray Wenderlich du site (une fois était ici:
Récupérer SSID dans iOS9 mais maintenant, le thread spécifique a été supprimé du site)
C'est ma solution Swift 3 iOS 10 et il fonctionne bien avec Xcode 8
Pour l'utiliser:
PS: Attention il ne fonctionne sur simulateur
Toutes présentées à l'instant où les solutions semble plutôt complexe, avec laide dangereux jette.
J'ai été en mesure de concevoir un tel concis solution (pas de la magie noire):
Dans Swift 3 (fonctionne en véritable appareil et le simulateur):
Utilisation:
Dans swift 2, vous n'avez pas à appeler
takeRetainedValue
.Remplacer le code
interfaces.takeRetainedValue() as [String : AnyObject]
avecArray(arrayLiteral: interfaces)
.Souviens aussi de modifier le code
interfacesArray[0] as String
enString(interfacesArray[0])
.Complète du code :
}
Swift 4 version
La fonction suivante retour le wifi nom et de l'adresse Mac
Ce code fonctionne très bien. Vous noterez quelques avertissement dans le développement de votre cible >= iOS9
https://stackoverflow.com/users/3108877/rob's réponse -- version plus courte
Vous pouvez trouver une autre réponse avec mise à jour de normes Swift de @trucs réponse qui prend en charge les Swift 3 et Swift 4. De retour à vide
""
sur des simulateurs.