将Unichar转换为Int问题

时间:2010-11-14 18:58:37

标签: iphone objective-c xcode unichar

我尝试从unichar转换为int时出现了一个奇怪的问题:

我有一个包含几个数字的字符串,例如@"12345"。这个数字我想单独​​保存,这意味着我想要5个数字,1,2,3,....现在,而

NSLog(@"Value: %C", [myString characterAtIndex:0]);

返回

Value: 1

此:

NSLog(@"Value: %@", [NSNumber numberWithUnsignedChar:[myString characterAtIndex:0]]);

返回

Value: 49

我非常感谢一些帮助,Fabian

1 个答案:

答案 0 :(得分:10)

在上面的代码中,你得到的正是你所要求的;字符'1'的数字值为49,您正在创建一个NSNumber。

如果您想要的是1,那么您可以利用数字0-9在ASCII / UTF-8表中按顺序排列并从unichar中减去适当的值这一事实你收到了。

尝试使用此代码段,让您开始朝着正确的方向前进:

NSString *s = @"0123456789";
for (int i = 0; i < [s length]; i++) {
    NSLog(@"Value: %d", [s characterAtIndex:i]);
}