如何转换一个NSString包含许多原始数据类型(例如int、float、char、unsigned int等)的?问题是,我不知道字符串在运行时将包含哪种数字类型。
NSString
int
float
char
unsigned int
我有一个想法,但我不确定这是否适用于任何类型,也适用于无符号和浮点值:
long long scannedNumber; NSScanner *scanner = [NSScanner scannerWithString:aString]; [scanner scanLongLong:&scannedNumber]; NSNumber *number = [NSNumber numberWithLongLong: scannedNumber];
谢谢您的帮助。
使用NSNumberFormatter:
NSNumberFormatter
NSNumberFormatter *f = [[NSNumberFormatter alloc] init]; f.numberStyle = NSNumberFormatterDecimalStyle; NSNumber *myNumber = [f numberFromString:@"42"];
如果字符串不是有效数字,myNumber则为nil. 如果它是一个有效的数字,那么您现在就NSNumber可以确定它实际上是什么类型的数字了。
myNumber
nil
NSNumber