Sonrobby Sonrobby - 1 year ago 34
Swift Question

swift How to cast from Int? to String

In Swift, i cant cast Int to String by:

var iString:Int = 100
var strString = String(iString)

But my variable in Int? , there for error:
Cant invoke 'init' with type '@Ivalue Int?'


let myString : String = "42"
let x : Int? = myString.toInt()

if (x != null) {
// Successfully converted String to Int
//And how do can i convert x to string???

Answer Source

You can use string interpolation.

let x = 100
let str = "\(x)"

if x is an optional you can use optional binding

var str = ""
if let v = x {
   str = "\(v)"

if you are sure that x will never be nil, you can do a forced unwrapping on an optional value.

var str = "\(x!)"

In a single statement you can try this

let str = x != nil ? "\(x!)" : ""

Based on @RealMae's comment, you can further shorten this code using the nil coalescing operator (??)

let str = x ?? ""