Sobes.tech
Junior — Middle

¿Cuál es la diferencia entre Nil y Null en el contexto de la programación?

sobes.tech AI

Respuesta de la IA

En el contexto de la programación, especialmente en iOS y Objective-C, Nil y Null tienen diferentes significados:

  • Nil: es un puntero a un objeto que es igual a cero (puntero nulo) para objetos Objective-C. Se usa para indicar la ausencia de un objeto (por ejemplo, NSObject *obj = Nil;).

  • NULL: es un macro que indica un puntero nulo para punteros normales a estructuras C o tipos primitivos (por ejemplo, int *ptr = NULL;).

  • NSNull: es un objeto especial en Foundation que se usa para representar un valor null en colecciones (por ejemplo, en NSArray o NSDictionary), ya que no pueden contener nil.

Ejemplo:

NSObject *obj = Nil;       // no hay objeto
int *ptr = NULL;           // no hay dirección
NSArray *array = @[[NSNull null]]; // objeto que representa null dentro de un array

Por lo tanto, Nil es un puntero nulo para objetos Objective-C, NULL para punteros normales, y NSNull es un objeto marcador para representar null en colecciones.