我找到了一个将String转换为NSNumber的方法,但是代码在Objective-C中。我试过将它转换为 Swift,但它不起作用。
我使用的代码:
NSNumberFormatter *f = [[NSNumberFormatter alloc] init];
f.numberStyle = NSNumberFormatterDecimalStyle;
NSNumber *myNumber = [f numberFromString:@"42222222222"];
在 Swift 中,我以这种方式使用它:
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")
}
如果您已经知道该字符串可以完美转换或者您根本不在乎,则可以在一行中完成此操作。
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")
}
关于ios - Swift 中的字符串到 NSNumber,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28605703/