Как получить значение ascii для NSString *, указывающего на символ? - PullRequest
4 голосов
/ 22 сентября 2011

Когда мне присваивают @"a", я бы хотел получить значение ascii 97.

Я думал, что это так

NSString *c = [[NSString alloc] initWithString:@"a"];
NSLog(@"%d", [c intValue]); // Prints 0, expected 97

Но ...Вы догадались (или знали это :)) .. это не так.

Как я могу получить значение ascii NSString *, указывающее на один символ?

Ответы [ 2 ]

5 голосов
/ 22 сентября 2011
NSString *str = @"a";
unichar chr = [str characterAtIndex:0];
NSLog(@"ascii value %d", chr);

А почему ваш метод не работает, потому что вы работаете на STRING, помните?Ни одного персонажа.Это все еще NSString.

4 голосов
/ 22 сентября 2011
NSLog(@"%d",[c characterAtIndex:0]);

Ссылка на класс NSString : целочисленное значение текста получателя, предполагающее десятичное представление и пропуски пробела в начале строки.Возвращает INT_MAX или INT_MIN при переполнении. Возвращает 0, если получатель не начинается с действительного десятичного текстового представления числа .

Поэтому он вернул 0, потому что вы вызвали intValue для недопустимого десятичного текстового представления числа.*

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...