Chris Chris - 4 months ago 10
iOS Question

Checking a null value in Objective-C that has been returned from a JSON string

I have a JSON object that is coming from a webserver.

The log is something like this:

{
"status":"success",
"UserID":15,
"Name":"John",
"DisplayName":"John",
"Surname":"Smith",
"Email":"email",
"Telephone":null,
"FullAccount":"true"
}


Note the Telephone is coming in as null if the user doesn't enter one.

When assigning this value to a
NSString
, in the
NSLog
it's coming out as
<null>


I am assigning the string like this:

NSString *tel = [jsonDictionary valueForKey:@"Telephone"];


What is the correct way to check this
<null>
value? It's preventing me from saving a
NSDictionary
.

I have tried using the conditions
[myString length]
and
myString == nil
and
myString == NULL


Additionally where is the best place in the iOS documentation to read up on this?

Answer

<null> is how the NSNull singleton logs. So:

if (tel == (id)[NSNull null]) {
    // tel is null
}

(The singleton exists because you can't add nil to collection classes.)

Comments