直接从包含“HEX”表示的NSString填充NSData

时间:2013-11-13 04:10:50

标签: objective-c encoding nsstring nsdata

我的问题是:

我想接受一个包含“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对象....

任何建议表示赞赏。

0 个答案:

没有答案