Il risultato è lo stesso per tutti, si ottiene un nuovo array vuoto immutabile. Tuttavia, i diversi metodi hanno implicazioni di gestione della memoria differenti. Utilizzando ARC questo non fa differenza alla fine, ma prima di ARC dovresti utilizzare la versione corretta o inviare messaggi di ritenzione, rilascio o autorelease appropriati.
[NSArray new]
e [[NSArray alloc] init]
restituiscono un array con un conteggio di mantenimento +1. Prima di ARC dovresti rilasciare o autorelease su quell'array o perdere memoria.
[NSArray array]
e @[]
restituiscono una matrice già autorizzata (conserva il conteggio 0). Se si desidera che rimanga senza ARC, è necessario mantenerlo manualmente oppure essere deallocato quando viene aperto il pool di autorelease corrente.
Confronta http://stackoverflow.com/questions/5423211/difference-between-nsmutablearray-array-vs-nsmutablearray-alloc-init, http://stackoverflow.com/questions/14527489/using-array-of- items-vs-nsarray-arraywithobjects e http://stackoverflow.com/questions/719877/use-of-alloc-init-instead-of-new. –
E qual è esattamente la domanda relativa a [rapido]? –