使用NSTextfield数据构建整数数组?

时间:2012-01-23 16:11:10

标签: arrays cocoa hex

我使用以下代码将十六进制字符串发送到NSStreamoutput:

uint8_t mirandaroutecommand[] = { 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x30, 0x14 };    
NSData *data = [[NSData alloc] initWithBytes:mirandaroutecommand length:sizeof(mirandaroutecommand)];
[hextooloutputStream write:[data bytes] maxLength:[data length]];

这很好但问题是我需要这些十六进制值来自用户界面上的NSTextfields。我试图将NSTextfield数据转换为整数但不起作用。有没有办法使用几个NSTextfields的数据来构建一个使用十六进制值的整数数组?

我试图找到一个现有主题,但我没有运气。

1 个答案:

答案 0 :(得分:0)

NSString方法integerValueintValue假定为十进制表示并忽略和尾随gumph - 因此将它们应用于@"0x01",他们看到0后跟他们忽略了一些gumph(x01)。

要阅读十六进制值,请使用NSScanner的{​​{1}}(或scanHexInt:):

scanHexLongLong:

unsigned scannedHexValue; if ([[NSScanner scannerWithString:textFieldContents] scanHexInt:&scannedHexValue]) { // value found ... } 比仅解析单个值更强大,因此如果您愿意,可以使用适当的方法调用扫描以逗号分隔的十六进制值列表。