Проблема в том, что ваш код:
NSLog(@"%@",[NSString stringWithFormat:@"%C", charcode]);
эквивалентен:
NSLog(@"%@",[NSString stringWithFormat:@"%C", @"0x0628"]);
, но stringWithFormat
ожидает целое число 0x0628
, а не строку @"0x0628"
.
Так что вам нужно конвертировать charcode
перед его использованием.Вы можете добиться этого, используя следующий код:
uint charValue;
[[NSScanner scannerWithString:charcode] scanHexInt:&charValue];
NSLog(@"%@",[NSString stringWithFormat:@"%C", charValue]);
Наконец, обратите внимание, что вы можете просто зарегистрировать символ, не создавая промежуточную строку, используя:
NSLog(@"%C", charValue);