Чтобы получить один символ, я использовал getch , но я не знаю, работает ли он в Windows.
Используйте NSNumberFormatter
:
NSNumberFormatter *f = [[NSNumberFormatter alloc] init];
f.numberStyle = NSNumberFormatterDecimalStyle;
NSNumber *myNumber = [f numberFromString:@"42"];
Если строка не является допустимым числом, тогда myNumber
будет nil
. Если это действительное число, то теперь у вас есть все возможности NSNumber
, чтобы выяснить, что это за число на самом деле.
Вы можете использовать - [NSString integerValue]
, - [NSString floatValue]
и т. Д. Однако правильный (с учетом языкового стандарта и т. Д.) ) способ сделать это - использовать - [NSNumberFormatter numberFromString:]
, который даст вам NSNumber, преобразованный из соответствующей локали и с учетом настроек NSNumberFormatter
(включая то, разрешит ли он значения с плавающей запятой).