iOS: ¿Por qué no puedo establecer nil en el valor NSDictionary?

Esta podría ser una pregunta muy básica, pero me preguntaba por qué no puedo asignar un valor nulo como NSDictionary. Tengo la siguiente declaración muchos lugares en mi código. Si[q objectForKey:@"text"] es nula entonces la aplicación se está estrellando.

NSMutableDictionary *dict = [[NSMutableDictionary alloc] initWithCapacity:2];
[dict setObject:[q objectForKey:@"text"] forKey:@"text"];

Tengo que buscar el cero en todas partes antes de asignarlo al diccionario. ¿Es esta la única forma correcta de hacerlo? ¿Me estoy perdiendo algo obvio?

if([q objectForKey:@"text"] != nil)
    [dict setObject:[q objectForKey:@"text"] forKey:@"text"];
else
    [dict setObject:@"" forKey:@"text"];

Respuestas a la pregunta(5)

Su respuesta a la pregunta