CoreWLAN: 'CWInterface' has no member 'commitConfiguration'

598 Views Asked by At

My goal is to reorder the list of wireless networks with CoreWLAN.

When I compile the following snippet, I get the following error: wifi.swift:21:6: error: value of type 'CWInterface' has no member 'commitConfiguration'

But according to https://developer.apple.com/documentation/corewlan/cwinterface/1426430-commitconfiguration it should work. What am I doing wrong?

Note that I use TextMate for this one and compile using swiftc -o wifi wifi.swift

import Foundation
import CoreWLAN

let config = CWWiFiClient.shared().interface()?.configuration() 
let mutableConfig = CWMutableConfiguration(configuration: config!)

let networkProfiles = mutableConfig.networkProfiles
let mutable = networkProfiles.mutableCopy() as! NSMutableOrderedSet

let indexSet = IndexSet(integer: 0)
mutable.moveObjects(at: indexSet, to: 2)
debugPrint(mutable)
mutableConfig.networkProfiles = mutable


let finalConfig = CWConfiguration(configuration: mutableConfig)
dump(finalConfig)
do {
    let interface = CWWiFiClient.shared().interface()!
    try interface.setPower(true)
    try interface.commitConfiguration(finalConfig, authorization: nil)
} catch {}
1

There are 1 best solutions below

0
On

Found it!

you must import SecurityFoundation

Better example code to reproduce issue:

import Foundation
import CoreWLAN
let configuration = CWWiFiClient.shared().interface()?.configuration()
let profiles = CWWiFiClient.shared().interface()?.commitConfiguration(configuration, authorization: nil)

please dup radar 33029361 if needed.