在我的应用程序中,我想连接到两个CBPeripheral,但在建立连接并启用通知后,我只能将数据发送到上次连接的设备。我怀疑这是因为我必须创建独立的CBPeripheralDelegates来处理通信。
因为每次我连接外设时都会设置peripheral.delegate.self。
有什么帮助吗?如何将外围委托传递到另一个类中,以便我可以从每个设备进行读/写?
我与CBPeripheral的连接代码的一部分:
if (!operationLocked)
{
if ([self isArrayEmpty])
{
return FAILED;
} else {
//I am calling this recursively
CBPeripheral *deviceToConnect = [_devicesToConnect objectAtIndex:0];
deviceToConnect.delegate = self;
operationLocked = true;
[_centralManager connectPeripheral:deviceToConnect options:nil];
return SUCESS;
}}...and so on发布于 2015-09-11 04:00:10
您的所有外围设备都可以使用同一代理。在委托代码中,您可以使用外围设备的唯一标识符(代码中的peripheral.identifier)来区分它们。
您必须存储每个外围对象才能对它们进行写入,除非写入是为了响应其中一个读取,在这种情况下,您已经在委托方法中具有外围对象。
https://stackoverflow.com/questions/32503527
复制相似问题