当出现@"a"
时,我希望能够得到它的ascii值为97.
我以为这样做了
NSString *c = [[NSString alloc] initWithString:@"a"];
NSLog(@"%d", [c intValue]); // Prints 0, expected 97
但是......你猜对了(或者知道了:))..它没有。
如何获得NSString *的ascii值,指向一个字符?
答案 0 :(得分:5)
NSString *str = @"a";
unichar chr = [str characterAtIndex:0];
NSLog(@"ascii value %d", chr);
为什么你的方法不起作用是因为你在STRING上操作还记得吗?不是一个字符。它仍然是一个NSString。
答案 1 :(得分:4)
NSLog(@"%d",[c characterAtIndex:0]);
NSString class reference:接收者文本的整数值,假设为十进制表示并在字符串的开头跳过空格。溢出时返回INT_MAX或INT_MIN。 如果接收方没有以数字的有效十进制文本表示开头,则返回0.
因此,它返回0,因为您在数字的无效十进制文本表示上调用了intValue。