algunas confusiones sobre [NSNull null] , nil [duplicate]

Posible duplicado:
¿Cuál es la diferencia entre [NSNull null] y nil?
¿Cuáles son las diferencias entre nil, NULL y [NSNULL nil]?

1.

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

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

2.

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

¿Debo elegir el primero o el segundo?

o cuando se trata así:

3.

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

4.

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

¿Y qué otra vez?

1.2.3.4. ¿Cuál es correcto y recomendado?

Respuestas a la pregunta(4)

Su respuesta a la pregunta