2016-04-22 7 views
0

Ich benutze das NetworkExtension Framework (ich habe richtige Berechtigungen und alles funktioniert gut). Ich versuche jedoch, auf die Eigenschaften zuzugreifen, und entdeckte keine direkten Mittel durch die Dokumentation auf developer.apple.com. Es wurden Eigenschaften aufgelistet, aber keine Möglichkeit, auf sie zuzugreifen. 1. SSID (NSString) 2. BSSID (NSString) 3. Signalstärke (Doppel)NSArray zu NSMutableArray zu NSString

Ich sehe etwas in Bezug auf diese Eigenschaften nicht direkt für den Zugriff, so dass ich beschlossen, eine Reihe von unterstützten Schnittstellen zu bekommen. In meinem Fall verwende ich Objective-C mit NSArray-unterstützten Schnittstellen.

Ich erhalte das Array der unterstützten Schnittstellen (die aktuelle ist die erste). Hier ist der Code, den ich verwende, um dieses Array zu erhalten.

NSArray *networkInterfaces = [NEHotspotHelper supportedNetworkInterfaces]; 

ich dieses Ergebnis (ich das Ergebnis etwas zu verbergen sensible Informationen nicht geändert:

2016-04-22 14:37:42.263 FlightPath[589:184926] (
"<CNNetwork SSID WiFiNetwork BSSID 00:a0:00:0a:00:0a [protected] [signal 0.884383] [Auto-Join] 0x12f655170>" 

)

ich in der Lage bin, dies zu protokollieren und stellen Sie ihn auf einem Etikett/Textansicht . Ich möchte jedoch die ObjectAtIndex-Eigenschaft verwenden, damit ich eine SSID.text (label) mit dem objectFromIndex auffüllen kann.

Ich habe zahlreiche Möglichkeiten ausprobiert, um das NSArray in ein MutableArray und dann in einen NSString zu konvertieren, aber ich konnte nirgends hinkommen. Irgendwelche Gedanken, Ideen?

+0

Ein NSMutableArray ist einfach eine * veränderbare * (modifizierbare) Version von NSArray. Es klingt wie, was Sie wirklich tun möchten, ist ein Feld aus einem der Einträge in Ihrem Array zu analysieren? –

+0

Ziemlich viel Platz auf. Ich konvertierte das NSArray in ein NSMutableArray mit: 'NSMutableArray * mutableCopy = [NSMutableArray arrayWithArray: NetzwerkInterfaces];' –

+0

@NathanDenlinger nicht direkt mit Ihrer Frage verwandt, aber für zukünftige Referenz können Sie auch eine veränderbare Kopie eines beliebigen 'NSObject' erstellen implementiert das 'NSMutableCopying'-Protokoll mit' NSMutableArray * mutableCopy = [networkInterfaces mutableCopy] '. Und umgekehrt können Sie die veränderbare Kopie zurück in eine unveränderliche Kopie mit '[mutableCopy copy]' – fullofsquirrels

Antwort

2

Es muss kein veränderbares Array erstellt werden. [NEHotspotHelper supportedNetworkInterfaces] gibt ein Array von NEHotspotNetwork Objekten zurück. Diese Klasse hat wiederum Eigenschaften, um die SSID, BSSID und signalStrength zu bekommen.

NSArray *networkInterfaces = [NEHotspotHelper supportedNetworkInterfaces]; 
NEHotspotNetwork *firstNetwork = [networkInterfaces firstObject]; 
NSString *ssid = firstNetwork.SSID; 
NSString *bssid = firstNetwork.BSSID; 
double signalStrength = firstNetwork.signalStrength; 
+0

Wow, ich fühle mich unglaublich dumm. Nun, danke, dass du auf meinen Fehler aufmerksam gemacht hast. Ich schätze sehr, was Sie hier eingegeben haben. Das machte ich weit komplizierter als nötig. –