ios objective-c new-operator allocation init

¿Cuál es la diferencia entre[Class new] y[[Class alloc] init] en iOS?



objective-c new-operator (3)

Aquí: alloc, init y nuevo en Objective-C

Básicamente es una cuestión de moderno versus tradicional. La ventaja más directa de init sobre new es que hay muchos métodos de inicio personalizados.

Posible duplicado:
alloc, init y nuevo en Objective-C

Estoy un poco confundido acerca de [Class new] y [[Class alloc] init] . [[Class alloc] init] un content objeto usando [Class new] y [[Class alloc] init] .

(1). NSMutableArray *content = [NSMutableArray new]; (2). NSMutableArray *content = [[NSMutableArray alloc] init];

Mi pregunta es sobre las diferencias entre [Class new] y [[Class alloc] init] . Para mí, (1) y (2) son similares. Si (1) y (2) son similares, ¿por qué usamos [[Class alloc] init] mayor parte del tiempo, en comparación con [Class new] ? Creo que debe haber alguna diferencia.

Amablemente explicar las diferencias, pros y contras de ambos?


El +new método es simplemente una abreviatura de +alloc y -init . La semántica de propiedad es idéntica. El único beneficio de usar +new es que es más conciso. Si necesita proporcionar argumentos al inicializador de la clase, deberá usar los +alloc y -initWith... lugar.


Alloc: método de clase de NSObject. Devuelve una nueva instancia de la clase de recepción.

Init : método de instancia de NSObject. Implementado por subclases para inicializar un nuevo objeto (el receptor) inmediatamente después de la memoria para que se haya asignado.

Nuevo : método de clase de NSObject. Asigna una nueva instancia de la clase de recepción, le envía un mensaje de inicio y devuelve el objeto inicializado.

Versión : Método de instancia del delegado NSObject. Disminuye el conteo de referencia del receptor.

Autorelease : método de instancia del delegado NSObject. Agrega el receptor al grupo de autorrelease actual.

Retener: método de instancia del delegado NSObject. Incrementa el recuento de referencias del receptor.

Copiar: método de instancia del delegado NSObject. Devuelve una nueva instancia que es una copia del receptor.

Entonces para concluir podemos decir que

alloc va con init

nuevo = alloc + init