我的问题是:
我想接受一个包含“HEX”值表示的NSString(来自用户):
NSString * stringHEX = @"FF00"; //User provided "HEX" as an NSString
...然后我想将这些完全值插入到NSData对象中。这是我遇到麻烦的地方。通过使用任何“dataUsingEncoding”,来自NSString的信息将转换为HEX值 OF NSString信息:
NSString * stringHEX = @"FF00";
NSData * dataToSend;
dataToSend = [[NSData alloc] initWithData:[stringHEX dataUsingEncoding:NSUTF8StringEncoding]];
dataToSend现在包含:“46463030”而不是“FF00”。我理解为什么会发生这种情况 - 因为我通过编码将NSString值编码到它自己的HEX表示中。但是我无法弄清楚如何直接获取该字符串... PUZZLED 。
我尝试了很多不同的变化。似乎没什么用。我可以通过这样的方式将我想要的值输入NSData:
Byte dataBytes[] = {0xFF,0x00};
NSData * dataToSend;
dataToSend = [[NSData alloc] initWithBytes:dataBytes length:2];
可以工作并将我期望的内容加载到NSData“FF00”中。
但是 - 我真的需要将用户输入作为NSString,然后将其转换为NSData对象....
任何建议表示赞赏。