String to NSNumber in Swift

ios, ios8, nsnumber, swift

Solution

Swift 3.0

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

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

Swift 2.0

Use the `Int()` initialiser 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 the string will convert perfectly 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")
}

Problem

I found a method to convert String to NSNumber, but the code is in Objective-C. I have tried converting it to Swift but it is not working. The code I am using: ``` NSNumberFormatter *f = [[NSNumberFormatter alloc] init]; f.numberStyle = NSNumberFormatterDecimalStyle; NSNumber *myNumber = [f numberFromString:@"42222222222"]; ``` and in Swift I am using it in this way: ``` var i = NSNumberFormatter.numberFromString("42") ``` But this code is not working. What am I doing wrong?

Original source