В моем случае в исходной строке не было разделителей, например «303034393934». Вот мое решение.
NSMutableString *_string = [NSMutableString string];
for (int i=0;i<12;i+=2) {
NSString *charValue = [tagAscii substringWithRange:NSMakeRange(i,2)];
unsigned int _byte;
[[NSScanner scannerWithString:charValue] scanHexInt: &_byte];
if (_byte >= 32 && _byte < 127) {
[_string appendFormat:@"%c", _byte];
} else {
[_string appendFormat:@"[%d]", _byte];
}
}
NSLog(@"%@", _string);