Como o NSDictionary manipula objetos NIL?

Considere o código abaixo. Em essência, obtemos 2 strings e adicionamos esses valores ao NSDictionar

No entanto, eu bati um bug estranho. Quando fbAccessTokenKey for 0x0 (ou nulo), o twitterToken também não será adicionado.

NSString *fbAccessTokenKey=[[UserStockInfo sharedUserStockInfo] getFBAccessTokenKey];
NSString *twitterToken=[[UserStockInfo sharedUserStockInfo] getTwitterAccessTokenKey];

NSDictionary *params= [[NSDictionary alloc] initWithObjectsAndKeys:
                       fbAccessTokenKey, @"fb_access_token", 
                       twitterToken, @"twitter_access_token", 
                       nil
                       ];

Por que isso está acontecendo e qual é uma boa maneira de resolver isso?

questionAnswers(3)

yourAnswerToTheQuestion