0

我的问题是这样的:

我想获取一个包含“HEX”值表示的 NSString(来自用户):

NSString * stringHEX = @"FF00";    //User provided "HEX" as an NSString

...然后我想将这些确切的值插入到 NSData 对象中。这是我遇到麻烦的地方。通过使用任何“ dataUsingEncoding ”,来自 NSString 的信息被转换为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 对象....

任何建议表示赞赏。

4

0 回答 0