iOS: Por que não posso definir valor zero para NSDictionary?

Esta pode ser uma questão muito básica, mas eu estava me perguntando por que não posso atribuir nil como valor NSDictionary? Eu tenho seguinte declaração muitos lugares no meu código. E se[q objectForKey:@"text"] é nil então App está falhando.

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

Eu tenho que verificar em todos os lugares para o zero antes de atribuí-lo ao dicionário. Esta é a única maneira correta de fazer? Estou faltando alguma coisa óbvia?

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

questionAnswers(5)

yourAnswerToTheQuestion