Написание приложения командной строки, использующего инфраструктуру CoreBluetooth - PullRequest
0 голосов
/ 10 февраля 2019

Я пытаюсь написать приложение для командной строки, которое использует инфраструктуру CoreBluetooth.

Я уже видел CoreBluetooth на Mac Приложение командной строки однако, когда я попытался следовать принятому советуМоя программа работала иначе, чем когда я сделал это с Какао.

Код для приложения командной строки:

import Foundation
import CoreBluetooth

class MyBluetoothClient : NSObject, CBCentralManagerDelegate, CBPeripheralDelegate {
    var manager: CBCentralManager!

    override init() {
        super.init()
        manager = CBCentralManager(delegate: self, queue: nil)
        print("Launched!")
    }

    func centralManagerDidUpdateState(_ central: CBCentralManager) {
        central.scanForPeripherals(withServices: nil)
        print("Started scan!")
    }

    func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) {
        print("Detected peripheral!")
    }
}

_ = MyBluetoothClient()

let runLoop = RunLoop.current
while runLoop.run(mode: RunLoopMode.defaultRunLoopMode, before: NSDate.distantFuture) {}

Единственное, что регистрируется кодом:

Launched

тогда как следующее приложение Какао запустило сканирование и обнаружило несколько периферийных устройств.

import Cocoa
import CoreBluetooth

@NSApplicationMain
class AppDelegate: NSObject, NSApplicationDelegate, CBCentralManagerDelegate, CBPeripheralDelegate {

    @IBOutlet weak var window: NSWindow!
    var manager: CBCentralManager!

    func centralManagerDidUpdateState(_ central: CBCentralManager) {
        central.scanForPeripherals(withServices: nil)
        print("Started scan!")
    }

    func centralManager(_ central: CBCentralManager, didDiscover peripheral: CBPeripheral, advertisementData: [String : Any], rssi RSSI: NSNumber) {
        print("Detected peripheral!")
    }

    func applicationDidFinishLaunching(_ aNotification: Notification) {
        manager = CBCentralManager(delegate: self, queue: nil)
        print("Launched!")
    }

    func applicationWillTerminate(_ aNotification: Notification) {
        // Insert code here to tear down your application
    }
}

Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...