Comprobando por un valor nulo

Posible duplicado:
! vs == nil en objective-c

En el Objetivo C, ¿hay alguna diferencia entre los dos siguientes condicionales?

NSObject *obj; if(!obj) { ... }

Y:

NSObject *obj; if(obj == nil) { ... }

¡Gracias! Simplemente curioso, imagínate que es algo bueno saber.

No hay diferencia entre las dos forms.

!obj también es válido cuando obj=NULL u obj=@"" o la matriz vacía etc. Obtiene el punto.

ie !obj es más completo ya que parece que usa NSObject y no cualquier tipo de object específico.