use*_*621 59 nsnumber ios swift ios8
我找到了一个将字符串转换为NSNumber的方法,但代码是在Objective-C中.我试过把它转换成swift但它不起作用.
我正在使用的代码
NSNumberFormatter *f = [[NSNumberFormatter alloc] init];
f.numberStyle = NSNumberFormatterDecimalStyle;
NSNumber *myNumber = [f numberFromString:@"42222222222"];
Run Code Online (Sandbox Code Playgroud)
我很快就以这种方式使用它
var i = NSNumberFormatter.numberFromString("42")
Run Code Online (Sandbox Code Playgroud)
但是这段代码不起作用,我做错了什么?
提前致谢
Wez*_*Wez 146
NSNumber(integer:myInteger) 已改为 NSNumber(value:myInteger)
let someString = "42222222222"
if let myInteger = Int(someString) {
let myNumber = NSNumber(value:myInteger)
}
Run Code Online (Sandbox Code Playgroud)
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")
}
Run Code Online (Sandbox Code Playgroud)
如果您已经知道字符串将完美转换或者您不在乎,则可以在一行中完成此操作.
let myNumber = Int("42222222222")!
Run Code Online (Sandbox Code Playgroud)
使用该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")
}
Run Code Online (Sandbox Code Playgroud)
pol*_*war 12
或者只做一行:
NSNumberFormatter().numberFromString("55")!.decimalValue
Run Code Online (Sandbox Code Playgroud)
斯威夫特2
试试这个:
var num = NSNumber.init(int: Int32("22")!)
Run Code Online (Sandbox Code Playgroud)
Swift 3.x
NSNumber.init( value: Int32("22")!)
Run Code Online (Sandbox Code Playgroud)
在最新的 Swift 中:
let number = NumberFormatter().number(from: "1234")
Run Code Online (Sandbox Code Playgroud)
如果必须使用,可以使用以下代码NSNumberFormatter.使用Wezly的方法更简单.
let formatter = NSNumberFormatter()
formatter.numberStyle = NSNumberFormatterStyle.DecimalStyle;
if let number = formatter.numberFromString("42") {
println(number)
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
61658 次 |
| 最近记录: |