String for NSNumber in fast

I found a string conversion method in NSNumber, but the code is in objective-C. I tried to convert it to fast, but it does not work.

The code I use

NSNumberFormatter *f = [[NSNumberFormatter alloc] init]; f.numberStyle = NSNumberFormatterDecimalStyle; NSNumber *myNumber = [f numberFromString:@"42222222222"]; 

and in swift i use it that way

 var i = NSNumberFormatter.numberFromString("42") 

But this code does not work, what am I doing wrong?

Thank you in advance

+59
ios ios8 swift nsnumber swift-converter
Feb 19 '15 at 11:53
source share
7 answers

Swift 3.0

NSNumber(integer:myInteger) changed to NSNumber(value:myInteger)

 let someString = "42222222222" if let myInteger = Int(someString) { let myNumber = NSNumber(value:myInteger) } 



Swift 2.0

Use an Int() initializer like this.

 let someString = "42222222222" if let myInteger = Int(someString) { let myNumber = NSNumber(integer:myInteger) print(myNumber) } else { print("'\(someString)' did not convert to an Int") } 

This can be done in one line if you already know that the line will be perfectly converted or you just don't care.

 let myNumber = Int("42222222222")! 



Swift 1.0

Use the toInt() method.

 let someString = "42222222222" if let myInteger = someString.toInt() { let myNumber = NSNumber(integer:myInteger) println(myNumber) } else { println("'\(someString)' did not convert to an Int") } 
+146
Feb 19 '15 at 11:55
source share

Or just in one line:

 NSNumberFormatter().numberFromString("55")!.decimalValue 
+12
Jul 21 '15 at 18:32
source share

Swift 2

Try the following:

 var num = NSNumber.init(int: Int32("22")!) 

Swift 3.x

  NSNumber.init( value: Int32("22")!) 
+7
Aug 04 '16 at 11:09
source share

You can use the following code if you should use NSNumberFormatter . Easier to use the Weasley method.

 let formatter = NSNumberFormatter() formatter.numberStyle = NSNumberFormatterStyle.DecimalStyle; if let number = formatter.numberFromString("42") { println(number) } 
+5
Feb 19 '15 at 11:59
source share

I use the extension in quick 3/4, and that's cool.

 extension String { var numberValue: NSNumber? { if let value = Int(self) { return NSNumber(value: value) } return nil } } 

and then just use the following code:

 stringVariable.numberValue 

The cool thing is that you don't need an if chain to expand the optional values. For example,

 if let _ = stringVariable, let intValue = Int(stringVariable!) { doSomething(NSNumber.init(value: intValue)) } 

can be replaced by:

 doSomething(stringVariable?.numberValue) 
+1
Apr 18 '18 at 1:14
source share

In the last Swift:

 let number = NumberFormatter().number(from: "1234") 
+1
Sep 04 '19 at 8:02
source share

Try once

 let myString = "123" let myInt = (myString as NSString).integerValue 
-5
Oct 18 '16 at 12:34
source share



All Articles