ObjectiveC: if (obj) {…} AND if (obj! = Nil) {…}, ¿cuál es mejor?

He visto muchos códigos de ObjC que hacen:

obj = [[SomeObject alloc] init];
if (obj) {
/// ...
}

pero como lo entendí, el valor inside () es booleano, y 0 indica que FALSO 1 indica VERDADERO (hay otro caso en otro idioma que 0 es verdadero y 1 es falso), y si un puntero no apunta a nada, se establece en NULL (nil), que # está definido para ser 0, así que me pregunto si es mejor si lo hago:

if (obj != nil) {
/// ...
}

Como está comprobando si el objeto es nulo o no, no importa qué valornil es, por lo que no se basa en esonil (oNULL) pasa a ser definido como 0?

Respuestas a la pregunta(2)

Su respuesta a la pregunta