Diferencia entre literales y métodos de clase para NSMutableArray y NSMutableDictionary [duplicado]
Esta pregunta ya tiene una respuesta aquí:
¿Es la creación literal de un NSMutableDictionary menos eficiente que el método de ayuda de clase? 1 respuestaCuando comencé con OSX / iOS utilicé
NSMutableArray * a1 = [NSMutableArray arrayWithCapacity:123] ;
NSMutableDictionary * d1 = [NSMutableDictionary dictionaryWithCapacity:123] ;
Entonces descubrí la versión 'más simple'
NSMutableArray * a2 = [NSMutableArray array] ;
NSMutableDictionary * d2 = [NSMutableDictionary dictionary] ;
Ahora me he mudado a:
NSMutableArray * a3 = [@[] mutableCopy] ;
NSMutableDictionary * d3 = [@{} mutableCopy] ;
Funcionalmente, todos parecen idénticos: una vez inicializados de cualquier manera, se pueden usar independientemente de cómo se crearon. ¿Dónde están las diferencias?
En particular, ¿debería suponer que d3 / a3 es más similar a d2 / a2 que a d1 / a1 en términos de asignación previa de memoria (o falta de ella)?
¿O es solo una cuestión de estilo?