¿Debo evitar usar nuevos para inicializar mis objects?

Recientemente me dijeron que Apple está desalentando el uso de nuevos estándares de encoding iOS de google y también tiene esto que decir:

No invoque el método de la class NSObject nuevo ni lo anule en una subclass. En su lugar, use los methods alloc e init para crear instancias de objects retenidos. El código Objective-C moderno explícitamente llama alloc y un método init para crear y retener un object. Como el nuevo método de class se usa con poca frecuencia, hace que el código de revisión para la gestión correcta de la memory sea más difícil.

¿Por qué, sin embargo, hacer que el código de revisión para la gestión correcta de la memory sea más difícil?

Espero que la reference a la facilidad de las revisiones de código simplemente significara que los lectores humanos de su código pueden no notar la palabra 'nuevo' mientras sus ojos escanean el código en busca de llamadas alloc-init.

En Objective-C, la palabra "nuevo" es un atajo para llamar a alloc e init. Pero entonces no puedes pasar arguments; estás llamando al constructor no-arg. Si más tarde cambia su código de tal forma que ahora quiera llamar a uno de los otros constructores y pasar arguments, necesitará cambiar su "nuevo" a un alloc-init. Esto es lo suficientemente común como para que todavía sea una razón para evitar llamar "nuevo" en primer lugar.

No hay ventaja para llamar a 'nuevo' sobre la asignación de alloc-init. La palabra "nueva" solo está en Objective-C porque otros idiomas, como Java, usan esa palabra key.