algumas confusões sobre [NSNull null] il nil [duplicate]

Possible Duplicate:
Qual é a diferença entre [NSNull null] e nil?
Quais são as diferenças entre zero, NULL e [NSNULL nil]?

1.

id dicValue = [aDictionary objetForKey:@"aKey"];

if(dicValue != nil)
{
     blablala...
}

o

2.

if(dicValue != [NSNull null]) 
{
     blablala...
}

devo escolher o primeiro ou o segund

ou quando é assim:

3.

if ([aDictionary objetForKey:@"aKey"] != nil)

o

4.

if ([aDictionary objetForKey:@"aKey"] != [NSNull null])

e o que de novo?

1.2.3.4. o que é correto e recomendado?

questionAnswers(4)

yourAnswerToTheQuestion