2011-12-19 19 views
5

differece giữa là gì:NSMutableArray alloc init vs mảng NSMutableArray

[[NSMutableArray alloc] init] 

[NSMutableArray array] 
+5

có thể trùng lặp của [Khác biệt giữa \ [mảng NSMutableArray \] và \ [\ [NSMutableArray alloc \] init \]] (http://stackoverflow.com/questions/5423211/diference-between-nsmutablearray-array-vs -nsmutablearray-alloc-init) – kennytm

Trả lời

11

Ở đây trong [NSMutableArray array] bạn không phải giải phóng array nó sẽ được phát hành tự động. & nếu bạn sẽ viết [NSMutableArray alloc] init] bạn sẽ phải phát hành array nên [[NSMutableArray array] sẽ tương đương với [[[NSArray alloc] init] autorelease];

+0

Tôi chỉnh sửa điều này, ImageList = [[NSMutableArray alloc] init]; như ImageList = [[[[NSMutableArray alloc] init] autorelese]; nhưng nó không hoạt động. Điều gì sẽ là lỗi – susitha

+0

phiên bản xcode & ios nào bạn đang sử dụng? –

+0

Xcode 4.1 và ios 4.3 – susitha

1

Những phần còn lại đầu tiên trong bộ nhớ cho đến khi bạn phát hành nó, thứ hai kéo dài cho đến khi kết thúc vòng lặp chạy lặp lại.

1

NSMutableArray không cần phải giải phóng bộ nhớ và [NSMutableArray alloc] init] u phải giải phóng nó.

0

khi ARC hoạt động, bạn phải giải phóng các đối tượng đến từ các phương pháp bao gồm init, alloc, new, copy và mutableCopy, như [NSMutableArray alloc] init]. Nếu không, các đối tượng sẽ được đăng ký để autoreleasepool, như [mảng NSMutableArray].