CoreBluetooth didDiscoverPeripheral no se llama en Swift

Estoy 99% seguro de que seguí las instrucciones para configurarCoreBluetooth correctamente. No importa lo que haga, cuando ejecuto esta aplicación en mi iPad mini, el Bluetooth dice que está activado. Está diciendo que está buscando dispositivos, pero no está encontrando ningún dispositivo. Si voy al menú de Bluetooth en el dispositivo, veo que se están descubriendo otros dispositivos. Inicializo elCBCentralManager. ConfigurocentralManagerDidUpdateState. Cuando eso está seguro de que el bluetooth está listo, llamacentralManager.scanForPeripheralsWithServices. Todo esto está sucediendo correctamente. Pero mi función delegadacentralManager(central: CBCentralManager!, didDiscoverPeripheral peripheral: CBPeripheral!, advertisementData: [NSObject : AnyObject]!, RSSI: NSNumber!) nunca se llama nunca. Mi código es muy simple. Tal vez me falta algo, pero pude confirmar que mi Macbook es un dispositivo BTLE y mi ipad mini también es un dispositivo BTLE. Aquí está mi código.

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.
    }

}

Respuestas a la pregunta(1)

Su respuesta a la pregunta