當我們想在NSMutableArray中分配一些值時,首先我們必須初始化它。初始化NSMutableArray
我們可以用兩種方式初始化它。一個是
NSMutableArray *arr = [NSMutableArray alloc] init];
,第二個是
NSMutableArray *arr = [NSMutableArray array];
那麼,什麼是這兩種方法之間的區別?哪個更適合使用?
當我們想在NSMutableArray中分配一些值時,首先我們必須初始化它。初始化NSMutableArray
我們可以用兩種方式初始化它。一個是
NSMutableArray *arr = [NSMutableArray alloc] init];
,第二個是
NSMutableArray *arr = [NSMutableArray array];
那麼,什麼是這兩種方法之間的區別?哪個更適合使用?
如果您使用非ARC項目,在第一個項目中,您擁有數組對象&的所有權,您必須釋放它們。它返回一個僅保留的對象。第二個返回保留和自動釋放對象因爲你沒有數組對象的所有權。
在ARC代碼中,你使用哪一個並不重要。
的Alloc:NSObject的等級方法。返回接收類的新實例。
Init:NSObject的實例方法。由子類實現以在分配內存後立即初始化新對象(接收者)。
新:NSObject的類方法。分配接收類的新實例,向其發送init消息,並返回初始化的對象。
頁頭去與初始化
new = alloc + init
使用+新的唯一的好處是,它是更簡潔。如果您需要爲類的初始化程序提供參數,則必須使用+ alloc和-initWith ...方法。
普遍的看法似乎是,你應該使用任何你舒服。
你可以轉到這個[鏈接](http://stackoverflow.com/questions/10474934/how-to-initialize-a-nsmutablearray-in-objective-c)將清除你的理解。 – nikhil84 2014-09-25 12:02:43
[[NSMutableArray數組\]與\ [[NSMutableArray alloc \] init \]之間的差異的可能重複](http://stackoverflow.com/questions/5423211/difference-between-nsmutablearray-array-vs-nsmutablearray -alloc-init) – Larme 2014-09-25 12:34:58
使用ARC在絕大多數情況下基本上沒有區別。我猜想第一個效率稍高一點。 – 2014-09-25 12:37:12