2011-12-19 6 views
5

Qual è il differece tra:NSMutableArray alloc init vs matrice NSMutableArray

[[NSMutableArray alloc] init] 

e

[NSMutableArray array] 
+5

possibile duplicato di [Differenza tra \ [NSMutableArray array \] vs \ [\ [NSMutableArray alloc \] init \]] (http://stackoverflow.com/questions/5423211/diference-between-nsmutablearray-array-vs -nsmutablearray-alloc-init) – kennytm

risposta

11

Qui in [NSMutableArray array] non è necessario rilasciare array verrà rilasciato automaticamente. & se si scriverà [NSMutableArray alloc] init] si dovrà rilasciare array così [[NSMutableArray array] sarà equivalente a [[[NSArray alloc] init] autorelease];

+0

Modifica questo, ImageList = [[NSMutableArray alloc] init]; come ImageList = [[[NSMutableArray alloc] init] autorelese]; ma non ha funzionato. Quale dovrebbe essere l'errore – susitha

+0

quale versione di xcode e ios stai usando? –

+0

Xcode 4.1 e ios 4.3 – susitha

1

I primi resti nella memoria finché non si rilascia, la seconda dura fino alla fine del ciclo di esecuzione iterazione.

1

NSMutableArray alcuna necessità di liberare la memoria e [NSMutableArray alloc] init] u deve essere rilasciarlo.

0

quando ARC funziona, è necessario rilasciare oggetti provenienti da metodi che includono init, alloc, new, copy e mutableCopy, come [NSMutableArray alloc] init]. In caso contrario, gli oggetti verranno registrati su autoreleasepool, come [NSMutableArray array].