Swift 并非在所有情况下都调用 BLE 函数 didConnectPeripheral

Swift BLE function didConnectPeripheral isn't called in all cases

我编写了一个 iOS 应用程序来将一些数据从我的 IPhone 传输到蓝牙低功耗模块。直到前天,一切正常......但似乎我昨天做了一个不好的改变,现在,我的应用程序不再工作了。 didConnectPeripheral 函数未被调用。以后我每天都要备份我的代码...反正这是连接到我的设备的功能:

在class ScanTableView:

var bluetoothManager: BluetoothManager = BluetoothManager()

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)
{
    selectedPeripheralIndex = indexPath.row
    print(selectedPeripheralIndex!)
    bluetoothManager.CBmanager.connectPeripheral(peripheralArray[selectedPeripheralIndex].peripheral, options: nil)
}

有什么遗漏吗?当我在 BluetoothManager class 中使用 connectPeripheral func 时,我可以毫无问题地连接...但是我希望能够选择正确的 BLE 设备等等我必须在用户选择一行后连接。

在class蓝牙管理器

var CBmanager: CBCentralManager = CBCentralManager()

func centralManager(central: CBCentralManager, didDiscoverPeripheral peripheral: CBPeripheral, advertisementData: [String : AnyObject], RSSI: NSNumber)
{
    let UUID = "\(peripheral.identifier)".substringFromIndex("\(peripheral.identifier)".startIndex.advancedBy(31))

    if !peripheralArray.contains({[=12=].UUID == UUID})
    {
        if peripheral.name != nil
        {
            peripheralArray.append(BluetoothPeripheral(name: peripheral.name!, UUID: UUID, RSSI: RSSI, peripheral: peripheral))

            if peripheral.name!.containsString(DEVICE_NAME)
            {
                CBmanager.connectPeripheral(peripheralArray[selectedPeripheralIndex].peripheral, options: nil)
            }
        }
    }
}

有什么想法吗?

好的,我解决了这个问题。好像是全局数组的问题 peripheralArray。如果我使用本地数组,它就可以工作!