string到NSNumber在迅速
我发现一个方法将string转换为NSNumber,但代码是在Objective-C中。 我曾尝试将其转换为快速但它不工作。
我正在使用的代码
NSNumberFormatter *f = [[NSNumberFormatter alloc] init]; f.numberStyle = NSNumberFormatterDecimalStyle; NSNumber *myNumber = [f numberFromString:@"42222222222"]; 并迅速地使用这种方式
 var i = NSNumberFormatter.numberFromString("42") 
但是这个代码不工作,我做错了什么?
提前致谢
Swift 3.0
  NSNumber(integer:myInteger)已更改为NSNumber(value:myInteger) 
 let someString = "42222222222" if let myInteger = Int(someString) { let myNumber = NSNumber(value:myInteger) } 
Swift 2.0
 像这样使用Int()初始化程序。 
 let someString = "42222222222" if let myInteger = Int(someString) { let myNumber = NSNumber(integer:myInteger) print(myNumber) } else { print("'\(someString)' did not convert to an Int") } 
这可以在一行完成,如果你已经知道string将完全转换,或者你只是不在乎。
 let myNumber = Int("42222222222")! 
Swift 1.0
 使用toInt()方法。 
 let someString = "42222222222" if let myInteger = someString.toInt() { let myNumber = NSNumber(integer:myInteger) println(myNumber) } else { println("'\(someString)' did not convert to an Int") } 
或者只在一行中完成:
 NSNumberFormatter().numberFromString("55")!.decimalValue 
 如果您必须使用NSNumberFormatter则可以使用以下代码。 使用Wezly的方法更简单。 
 let formatter = NSNumberFormatter() formatter.numberStyle = NSNumberFormatterStyle.DecimalStyle; if let number = formatter.numberFromString("42") { println(number) } 
Swift 2
尝试这个:
 var num = NSNumber.init(int: Int32("22")!) 
Swift 3.x
  NSNumber.init( value: Int32("22")!) 
尝试一次
 let myString = "123" let myInt = (myString as NSString).integerValue