本意是想传输一系列16进制的字符串.而NSData类型会将 NSString 转为16进制的 ASCII 码.有什么方法可以直接传输16进制的数据么.
学习是最好的投资!
//编写一个NSData类型数据+(NSMutableData)HexStringToData:(NSString)str{
NSString *command = str; command = [command stringByReplacingOccurrencesOfString:@" " withString:@""]; NSMutableData *commandToSend= [[NSMutableData alloc] init]; unsigned char whole_byte; char byte_chars[3] = {'\0','\0','\0'}; int i; for (i=0; i < [command length]/2; i++) { byte_chars[0] = [command characterAtIndex:i*2]; byte_chars[1] = [command characterAtIndex:i*2+1]; whole_byte = strtol(byte_chars, NULL, 16); [commandToSend appendBytes:&whole_byte length:1]; } return commandToSend;
} 补充一下:这里传进来的Str已经是16进制的数字。比方说发送字符串:JLBT 就应该先变成16进制:NSString * Str = @"4a4c4254";然后你发出去的数据就是16进制的数据啦
//编写一个NSData类型数据
+(NSMutableData)HexStringToData:(NSString)str{
}
补充一下:这里传进来的Str已经是16进制的数字。
比方说发送字符串:JLBT 就应该先变成16进制:NSString * Str = @"4a4c4254";
然后你发出去的数据就是16进制的数据啦