I have an NSDictionary
that's populated from a JSON response from an API server. Sometimes the values for a key in this dictionary are Null
I am trying to take the given value and drop it into the detail text of a table cell for display.
The problem is that when I try to coerce the value into an NSString
I get a crash, which I think is because I'm trying to coerce Null
into a string.
What's the right way to do this?
What I want to do is something like this:
cell.detailTextLabel.text = sensor.objectForKey( "latestValue" ) as NSString
Here's an example of the Dictionary:
Printing description of sensor: { "created_at" = "2012-10-10T22:19:50.501-07:00"; desc = "<null>"; id = 2; "latest_value" = "<null>"; name = "AC Vent Temp"; "sensor_type" = temp; slug = "ac-vent-temp"; "updated_at" = "2013-11-17T15:34:27.495-07:00"; }
If I just need to wrap all of this in a conditional, that's fine. I just haven't been able to figure out what that conditional is. Back in the Objective-C world I would compare against [NSNull null]
but that doesn't seem to be working in Swift.
You can use the as?
operator, which returns an optional value (nil
if the downcast fails)
if let latestValue = sensor["latestValue"] as? String { cell.detailTextLabel.text = latestValue }
I tested this example in a swift application
let x: AnyObject = NSNull() if let y = x as? String { println("I should never be printed: \(y)") } else { println("Yay") }
and it correctly prints "Yay"
, whereas
let x: AnyObject = "hello!" if let y = x as? String { println(y) } else { println("I should never be printed") }
prints "hello!"
as expected.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With