swift 3 - ios : convert anyObject to string swift 3 - ios : convert anyObject to string ios ios

swift 3 - ios : convert anyObject to string


The compiler suggests that you replace your code with:

let s = String(describing: str)

One other option is available if you have a situation where you want to silently fail with an empty string rather than store something that might not originally be a string as a string.

let s =  str as? String ?? ""

else you have the ways of identifying and throwing an error in the answers above/below.


Here's three options for you:

Option 1 - if let

if let b = a as? String {    print(b) // Was a string} else {    print("Error") // Was not a string}

Option 2 - guard let

guard let b = a as? Stringelse {    print("Error") // Was not a string    return // needs a return or break here}print(b) // Was a string

Option 3 - let with ?? (null coalescing operator)

let b = a as? String ?? ""print(b) // Print a blank string if a was not a string


Here's a simple function (repl.it) that will mash any value into a string, with nil becoming an empty string. I found it useful for dealing with JSON that inconsistently uses null, blank, numbers, and numeric strings for IDs.

import Foundationfunc toString(_ value: Any?) -> String {  return String(describing: value ?? "")}let d: NSDictionary = [    "i" : 42,    "s" : "Hello, World!"]dump(toString(d["i"]))dump(toString(d["s"]))dump(toString(d["x"]))

Prints:

- "42"- "Hello, World!"- ""