Dou*_*ull 5 ios core-bluetooth
当我获得委托didConnectPeripheral:(CBPeripheral *)peripheral
时,我可以将外围设备存储在一个阵列中,然后用它来重新连接,而不是使用retrievePeripherals及其后续的didRetrievePeripherals吗?如果它可行且没有风险,似乎会更容易.
以后可以(CBPeripheral *)peripheral重复使用多少?断开与外围设备后它仍然有效吗?
工作流程:
scanForPeripheralsWithServices() - 扫描外围设备didDiscoverPeripheral:(CBPeripheral *)peripheral - 当它被检测到时
connectPeripheral:peripheraldidConnectPeripheral:(CBPeripheral *)peripheralstopScan并存储以(CBPeripheral *)peripheral供日后使用.cancelPeripheralConnectiondidDisconnectPeripheral稍后,重新连接......
connectPeripheral:peripheral - 来自带外设的阵列didConnectPeripheral:(CBPeripheral *)peripheral
...是的,它会起作用(但这是可怕的做法).该retrievePeripherals:方法是专门创建的,因此您可以在后续启动应用程序之间重新连接到外围设备.您可以使用您的方法,但是一旦应用程序关闭,您将永远无法再次连接到外围设备(不将其置于广告模式并从头开始).您可以在启动之间存储uuid,但不能存储CBPeripheral对象.所以那里有很大的缺点.
总而言之:它会起作用,但它并没有真正获得任何东西.它并不比调用retrievePeripherals:然后连接它们快.您建议的方法仅限制您的连接能力CoreBluetooth.但是一个有趣的问题.