TouchJSON, tratando con NSNull

Hola, estoy usando TouchJSON para deserializar algunos JSON. Lo he estado usando en el pasado y en esas ocasiones me ocupé de los casos de NSNull manualmente. Creo que el autor también tuvo que lidiar con esto, por lo que hacer eso nuevamente sería una sobrecarga. Luego encontré esto en la documentación:

Evitar valores NSNull en la salida.

NSData *theJSONData = /* some JSON data */
CJSONDeserializer *theDeserializer = [CJSONDeserializer deserializer];
theDeserializer.nullObject = NULL;
NSError *theError = nil;
id theObject = [theDeserializer deserialize:theJSONData error:&theError];}

Según tengo entendido, el usuario de la clase puede pasar un puntero nulo de estilo C al deserializador y cuando encuentra un NSNull, insertará los valores (NULL) que se le pasaron. Más adelante, cuando use los valores, no obtendré NSNull, sino NULL.

Esto parece extraño, el valor de retorno es un NSDictionary que solo puede contener objetos, ¿no debería el valor predeterminado 'nil' en su lugar?

Si es NULL, ¿puedo verificar los valores como este?

if([jsonDataDict objectForKey:someKey] == NULL)

Parece más lógico poder hacer esto:

if(![jsonDataDict objectForKey:someKey])

No mencionar todos los casos en los que se permite pasar nulo pero pasar NULL provoca un bloqueo.

¿O puedo pasar 'nulo' al deserializador?

Mucho de esto se debe a que sigo luchando con nil, NULL, [NSNULL null], tal vez no veo las posibles advertencias al usar nil.

Respuestas a la pregunta(3)

Su respuesta a la pregunta