Swift version: 5.6
If you have an integer hiding inside a string, you can convert between the two just by using the integer's initializer, like this:
let myString1 = "556"
let myInt1 = Int(myString1)
Because strings might contain something that isn’t a number – e.g. “Fish” rather than “556” – the Int
initializer will return an optional integer, so if you want to force a value you should use nil coalescing like this:
let myInt2 = Int(myString) ?? 0
That means “attempt to convert myString
to an integer, but if the conversion failed because it contained something invalid then use 0 instead.”
As with other data types (Float
and Double
) it’s also possible to convert by using NSString
if you’re desperate:
let myInt3 = (myString1 as NSString).integerValue
Ideally, though, that shouldn’t needed.
TAKE YOUR SKILLS TO THE NEXT LEVEL If you like Hacking with Swift, you'll love Hacking with Swift+ – it's my premium service where you can learn advanced Swift and SwiftUI, functional programming, algorithms, and more. Plus it comes with stacks of benefits, including monthly live streams, downloadable projects, a 20% discount on all books, and free gifts!
Sponsor Hacking with Swift and reach the world's largest Swift community!
Available from iOS 7.0
This is part of the Swift Knowledge Base, a free, searchable collection of solutions for common iOS questions.
Link copied to your pasteboard.