2014-02-11 262 views
-4

我是Obejtive C的新手,所以我在當時看了很多示例代碼,我發現人們初始化他們的NSMutableArray的方式不同。用數組或初始化初始化一個NSMutableArray初始化

NSMutableArray *items = [NSMutableArray array]; 

NSMutableArray *items = [[NSMutableArray alloc] init]; 

在你結束了一個NSMutableArray對象都行。
他們之間有什麼不同或者他們完全一樣嗎?

+0

第一個是工廠方法,它返回一個nsmutablearray的實例。在第二個你給予記憶並保持它的數量爲1。 – Pawan

回答

6

這些之間的主要區別是,如果你不使用ARC(自動引用計數)。第一個返回一個保留和自動釋放的對象。第二個返回僅保留的對象。因此,在第一種情況下,如果您想保留它比當前運行循環更長時間,則需要保留它。在第二種情況下,如果您不想保留它,您會想要釋放或自動釋放它。

既然我們有ARC,這就改變了事情。基本上,在ARC代碼中,你使用哪一個並不重要。