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