iphone nscopying copywithzone

iPhone:(id) copyWithZone:(NSZone*) zona: ¿para qué sirve “zona”?



nscopying (2)

Al implementar este método de NSCopying en una clase para habilitar la copia, ¿para qué sirve la zona param? Si configuro un nuevo objeto, no necesito asignarlo con allocWithZone, ya que una asignación es suficiente ... Estoy confundido ...



Es una reliquia de los viejos tiempos, donde teníamos múltiples "zonas" para asignar. En estos días, todas las aplicaciones solo tienen una única zona donde se hacen todas las asignaciones, pero la clase NSZone todavía existe y se escribe demasiado código para depender en +allocWithZone: siendo el método de asignación fundamental para realizar el cambio.

En resumen, puede ignorar la estructura NSZone en su totalidad, y la única razón para preocuparse por +allocWithZone: es si necesita +allocWithZone: . De manera similar, con -copyWithZone: puedes ignorar la zona. Si lo deseas, puedes llamar a +allocWithZone: pasar en la misma zona, pero no hará ninguna diferencia.