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