我的任务是将制造商数据与字符串进行比较以显示BLE设备。
-(void)centralManager:(CBCentralManager *):didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI
{
NSString *manufac=[advertisementData objectForKey:CBAdvertisementDataManufacturerDataKey];
NSString *string=@"57394423 4334445 55";
if([string isEqualToString:manufac])
NSLog(@"yes it is the device");
else
NSLog(@"sorry not a device");
}
当打印时,'manufac'给出结果为< 57394423 4334445 55>这在任何时候都没有被证明是正确的。 如何比较?请帮忙。
答案 0 :(得分:0)
CBAdvertisementDataManufacturerDataKey
返回的对象是NSData
对象。
您正在将其分配给错误的NSString
对象。
要获取UUID,您可以执行以下操作:
NSData *manufacturer = [advertisementData objectForKey:CBAdvertisementDataManufacturerDataKey];
NSUUID *uuid = [[NSUUID alloc] initWithUUIDBytes:manufacturer.bytes];
然后将此UUID与您要搜索的UUID进行比较。如果您需要实际的NSString
表示,请使用uuid.UUIDString
。