【发布时间】:2019-12-17 07:02:14
【问题描述】:
我有一个字符串,我正在尝试将其分解并将其添加到 NSArray。我最近从 Java (android) 迁移到 iOS...我写了一个 java 函数,它将一个 hexString/string 转换为一个字节数组。我看不到使用objective-c的明显方法。不确定我的尝试是否接近于实现我所需要的。
这是我的字符串
NSString *code = @"11111bfb";
这是我希望达到的输出
NSArray *codeArray = @[@0x11, @0x11, @0x1b, @0xfb];
方法
- (NSData *)dataFromHexString:(NSString *) string {
if([string length] % 2 == 1){
string = [@"0x"stringByAppendingString:string];
}
const char *chars = [string UTF8String];
int i = 0, len = (int)[string length];
NSMutableData *data = [NSMutableData dataWithCapacity:len / 2];
char byteChars[4] = {'\0','\0','\0','\0'};
unsigned long wholeByte;
while (i < len) {
byteChars[0] = chars[i++];
byteChars[1] = chars[i++];
wholeByte = strtoul(byteChars, NULL, 16);
[data appendBytes:&wholeByte length:1];
}
return data;
}
【问题讨论】:
标签: objective-c