使用字符串创建一个128位UUID



我试图用iOS核心蓝牙框架创建一个128Bit。

我写的代码在这里:

//16Bit Value-String
static NSString * const ADVERTISING_SERVICE_16=@"FFC0";
//Var for 128Bit String
static NSString * ADVERTISING_SERVICE;

//A Base UUID 
static NSString * const BASE_UUID=@"0405060708090A0B0C0D0E0F";
+ (NSString*) get128BitUUID:(NSString*)uuid{
    return [[NSString alloc] initWithFormat:@"0000%@%@",uuid,BASE_UUID];
}
ADVERTISING_SERVICE = [UUIDFuncs get128BitUUID:ADVERTISING_SERVICE_16];

现在,当我尝试使用以下内容获取UUID时:

if([service.UUID isEqual:[CBUUID UUIDWithString:ADVERTISING_SERVICE] ]){
    [peripheral discoverCharacteristics:nil forService:service];
}

我收到这个错误消息:

2012-09-04 14:18:06.127 blukiiFirmwareTest[3154:707] *** Terminating app due to uncaught
exception 'Invalid UUID string', reason: 'String 0000FFC00405060708090A0B0C0D0E0F 
does not represent a valid UUID'

我不明白为什么;字符串是一个16字节长的UUID,这是128位,为什么我会收到这个错误?

在命令行上键入uuidgen以创建新的随机uuid:

0C50D390-DC8E-436B-8AD0-A36D1B304B18

正如@PenguinCoder链接的维基百科页面所提到的,它是8-4-4-12的形式。

使用以下格式的字符串创建CBUUID将起作用:

CBUUID *uuid = [CBUUID UUIDWithString:@"0C50D390-DC8E-436B-8AD0-A36D1B304B18"];

相关内容

  • 没有找到相关文章

最新更新