ios swift ios8 nsnumber

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")!)