CoreBluetooth didDiscoverPeripheral wird in Swift nicht aufgerufen

Ich bin zu 99% sicher, dass ich die Anweisungen zur Einrichtung befolgt habeCoreBluetooth korrekt. Egal was ich tue, wenn ich diese App auf meinem iPad mini starte, sagt das Bluetooth, dass es eingeschaltet ist. Es heißt, es wird nach Geräten gesucht, aber es werden absolut keine Geräte gefunden. Wenn ich auf dem Gerät zum Bluetooth-Menü gehe, werden andere Geräte erkannt. Ich initialisiere dieCBCentralManager. Ich habe arrangiertcentralManagerDidUpdateState. Wenn das sicher ist, ruft das Bluetooth ancentralManager.scanForPeripheralsWithServices. All dies geschieht richtig. Aber meine DelegiertenfunktioncentralManager(central: CBCentralManager!, didDiscoverPeripheral peripheral: CBPeripheral!, advertisementData: [NSObject : AnyObject]!, RSSI: NSNumber!) wird nie gerufen. Mein Code ist sehr einfach. Vielleicht fehlt mir etwas, aber ich konnte bestätigen, dass mein Macbook ein BTLE-Gerät und mein ipad mini auch ein BTLE-Gerät ist. Hier ist mein Code.

import UIKit
import CoreBluetooth

class ViewController: UIViewController, CBCentralManagerDelegate {

    var centralManager:CBCentralManager!
    var blueToothReady = false

    override func viewDidLoad() {
        super.viewDidLoad()
        startUpCentralManager()
    }

    func startUpCentralManager() {
        println("Initializing central manager")
        centralManager = CBCentralManager(delegate: self, queue: nil)
    }

    func discoverDevices() {
        println("discovering devices")
        centralManager.scanForPeripheralsWithServices(nil, options: nil)
    }

    func centralManager(central: CBCentralManager!, didDiscoverPeripheral peripheral: CBPeripheral!, advertisementData: [NSObject : AnyObject]!, RSSI: NSNumber!) {
        println("Discovered \(peripheral.name)")
    }

    func centralManagerDidUpdateState(central: CBCentralManager!) {
        println("checking state")
        switch (central.state) {
            case .PoweredOff:
            println("CoreBluetooth BLE hardware is powered off")

            case .PoweredOn:
            println("CoreBluetooth BLE hardware is powered on and ready")
            blueToothReady = true;

            case .Resetting:
            println("CoreBluetooth BLE hardware is resetting")

            case .Unauthorized:
            println("CoreBluetooth BLE state is unauthorized")

            case .Unknown:
            println("CoreBluetooth BLE state is unknown");

            case .Unsupported:
            println("CoreBluetooth BLE hardware is unsupported on this platform");

        }
        if blueToothReady {
            discoverDevices()
        }
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

}

Antworten auf die Frage(1)

Ihre Antwort auf die Frage