CoreWLAN CWEventDelegate EXC_BAD_ACCESS, когда вызывается функция события - PullRequest
0 голосов
/ 02 января 2019

Итак, я использую CoreWLAN, и мне нужно было зарегистрировать некоторые события; Я начал, попробовав одно событие, CWEventType.ssidDidChange. Тогда у меня есть соответствующая функция в соответствии с Apple Docs для обработки func ssidDidChangeForWiFiInterface(withName interfaceName: String). Но когда происходит событие (я сбрасываю свой Wi-Fi, чтобы смоделировать изменение SSID), я получаю ошибку, подобную этой Thread 2: EXC_BAD_INSTRUCTION (code=EXC_I386_INVOP, subcode=0x0).

Страницы документации Apple, которые я использовал: https://developer.apple.com/documentation/corewlan/cwwificlient/1512439-startmonitoringevent https://developer.apple.com/documentation/corewlan/cweventtype https://developer.apple.com/documentation/corewlan/cweventdelegate https://developer.apple.com/documentation/corewlan/cweventdelegate/1512422-ssiddidchangeforwifiinterface

Это мой код:

import Foundation
import CoreWLAN
import Cocoa

class WLANMonitor: CWEventDelegate {
    var client: CWWiFiClient = CWWiFiClient.shared();
    init() {
        self.client.delegate = self
    }

    func registerEvents() {
        puts("Registering for SSID change...")
        do {
            try client.startMonitoringEvent(with: CWEventType.ssidDidChange);
        } catch {
            print("Error");
        }
    }

    func ssidDidChangeForWiFiInterface(withName interfaceName: String) 
    {
        print("Changed SSID")
    }
}
...