如何从Objective-C中获取UUID的特性?

Mar*_*tin 1 objective-c ios core-bluetooth bluetooth-lowenergy

我正在为Objective-C开发BLE.

我像下面的代码一样定义UUID:

    static NSString *const LEDStateCharacteristicUUID = @"ffffffff-7777-7uj7-a111-d631d00173f4";
Run Code Online (Sandbox Code Playgroud)

我想通过以下代码为BLE设备写特性,它需要通过3个参数:1.Data 2.Characteristic 3.type

CBCharacteristic *chara = ??? // how to set the characteristic via above UUID let it can pass to following function?

[peripheral writeValue:data forCharacteristic:chara type:CBCharacteristicWriteWithoutResponse];
Run Code Online (Sandbox Code Playgroud)

如何通过上面的UUID设置特性让它可以传递给writeCharacteristic函数?

提前致谢.

Sal*_*lmo 5

首先,您需要知道您想要的服务UUID和特定UUID.当您拥有这些UUID时,可以使用下面的逻辑来获取正确的特征实例:

- (CBCharacteristic *)characteristicWithUUID:(CBUUID *)characteristicUUID forServiceUUID:(CBUUID *)serviceUUID inPeripheral:(CBPeripheral *)peripheral {

    CBCharacteristic *returnCharacteristic  = nil;
    for (CBService *service in peripheral.services) {

       if ([service.UUID isEqual:serviceUUID]) {
           for (CBCharacteristic *characteristic in service.characteristics) {

                if ([characteristic.UUID isEqual:characteristicUUID]) {

                    returnCharacteristic = characteristic;
                }
            }
        }
    }
    return returnCharacteristic;
}
Run Code Online (Sandbox Code Playgroud)