2012-03-19 46 views
1

我正在将一段代码从VB转换为Objective C.它包含函数ChrW(),该函数将来自unicode值的char作为整数传递。如何在Objective C中实现它?从Unicode值获取char - 目标C

非常感谢

+0

定义'char'。你的意思是ASCII字符码吗?你的意思是Unicode字符码吗?你的意思是完全不同的吗? – 2012-03-19 19:03:51

回答

6
NSString *c = [NSString stringWithFormat:@"%C", unicodeValue]; 

按照documentation

%C:16位的Unicode字符(单字符),通过的NSLog()作为一个ASCII字符,或印刷如果不是ASCII字符,则采用八进制格式\ ddd或Unicode十六进制格式\ udddd,其中d是数字

例如,你可以得到作为例子ChrW文档中相同的结果:

Dim MyChar As Char 
MyChar = Chr(65) ' Returns "A". 
MyChar = Chr(97) ' Returns "a". 
MyChar = Chr(62) ' Returns ">". 
MyChar = Chr(37) ' Returns "%". 

而且在目标C:

NSString *c; 
c = [NSString stringWithFormat:@"%C", 65]; // @"A" 
c = [NSString stringWithFormat:@"%C", 97]; // @"a" 
c = [NSString stringWithFormat:@"%C", 62]; // @">" 
c = [NSString stringWithFormat:@"%C", 37]; // @"%" 
1

您是否尝试过使用NSNumber类?

NSNumber *unicode = [NSNumber numberWithUnsignedShort:250]; 
char myChar = [unicode charValue]; 

由于unicode字符只是一个unsigned short,所以您可以得到这样的数值。