Kết quả là giống nhau cho tất cả chúng, bạn sẽ nhận được một mảng không thay đổi mới trống. Tuy nhiên, các phương pháp khác nhau có những hàm ý quản lý bộ nhớ khác nhau. Sử dụng ARC điều này không có sự khác biệt nào về kết thúc, nhưng trước ARC, bạn sẽ phải sử dụng đúng phiên bản hoặc gửi thông tin giữ chân, giải phóng hoặc tự động phát lại thích hợp.
[NSArray new]
và [[NSArray alloc] init]
trả lại mảng có số lần giữ lại +1. Trước ARC, bạn sẽ phải giải phóng hoặc tự động phát hiện mảng đó hoặc bạn sẽ bị rò rỉ bộ nhớ.
[NSArray array]
và @[]
trả về một mảng đã được tự động phát hiện (giữ lại số 0). Nếu bạn muốn nó dính xung quanh mà không có ARC, bạn sẽ phải tự giữ lại nó hoặc nó sẽ được deallocated khi hồ bơi autorelease hiện tại được popped.
So sánh 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 và http://stackoverflow.com/questions/719877/use-of-alloc-init-instead-of-new. –
Và câu hỏi liên quan đến [swift] chính xác đến mức nào? –