ios - Cadena a NSNumber en rápido
nsnumber to int swift (7)
Trata una vez
let myString = "123" let myInt = (myString as NSString).integerValue
Encontré un método para convertir una cadena a NSNumber, pero el código está en el objetivo-C. He intentado convertirlo a rápido pero no funciona.
El código que estoy usando
NSNumberFormatter *f = [[NSNumberFormatter alloc] init];
f.numberStyle = NSNumberFormatterDecimalStyle;
NSNumber *myNumber = [f numberFromString:@"42222222222"];
y rápidamente lo estoy usando de esta manera
var i = NSNumberFormatter.numberFromString("42")
Pero este código no funciona, ¿qué estoy haciendo mal?
Gracias por adelantado
Swift 3.0
NSNumber(integer:myInteger)
ha cambiado a
NSNumber(value:myInteger)
let someString = "42222222222"
if let myInteger = Int(someString) {
let myNumber = NSNumber(value:myInteger)
}
Swift 2.0
Utilice el inicializador
Int()
esta manera.
let someString = "42222222222"
if let myInteger = Int(someString) {
let myNumber = NSNumber(integer:myInteger)
print(myNumber)
} else {
print("''/(someString)'' did not convert to an Int")
}
Esto se puede hacer en una línea si ya sabe que la cadena se convertirá perfectamente o simplemente no le importa.
let myNumber = Int("42222222222")!
Swift 1.0
Use el método
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")
}
En el último Swift:
let myString = "123"
let myInt = (myString as NSString).integerValue
O hazlo solo en una línea:
NSNumberFormatter().numberFromString("55")!.decimalValue
Puede usar el siguiente código si debe usar
NSNumberFormatter
.
Es más sencillo usar el método de Wezly.
let formatter = NSNumberFormatter()
formatter.numberStyle = NSNumberFormatterStyle.DecimalStyle;
if let number = formatter.numberFromString("42") {
println(number)
}
Yo uso la extensión en swift 3/4 y es genial.
extension String {
var numberValue: NSNumber? {
if let value = Int(self) {
return NSNumber(value: value)
}
return nil
}
}
y luego solo use el siguiente código:
stringVariable.numberValue
Lo bueno es que no necesita una cadena de sentencias
if
para desenvolver los valores opcionales.
Por ejemplo,
if let _ = stringVariable, let intValue = Int(stringVariable!) {
doSomething(NSNumber.init(value: intValue))
}
puede ser reemplazado por:
doSomething(stringVariable?.numberValue)
Swift 2
Prueba esto:
var num = NSNumber.init(int: Int32("22")!)
Swift 3.x
NSNumber.init( value: Int32("22")!)