簡體   English   中英

NSMutableArray的初始化

[英]Initialization of NSMutableArray

當我們想在NSMutableArray中分配一些值時,首先我們必須對其進行初始化。

我們可以通過兩種方式對其進行初始化。 一個是

NSMutableArray *arr = [NSMutableArray alloc] init];

第二個是

NSMutableArray *arr = [NSMutableArray array];

那么這兩種方法有什么區別? 哪個是更好的選擇?

如果您使用的是非ARC項目,則在第一個項目中,您必須擁有數組對象的所有權並必須釋放它們。它返回僅保留的對象;第二個項目則返回一個保留且已自動釋放的對象。擁有數組對象的所有權。

在ARC代碼中,使用哪種都無所謂。

請參閱陣列類和此問題

Alloc :NSObject的類方法。 返回接收類的新實例。

初始化 :NSObject的實例方法。 由子類實現,以在為其分配內存后立即初始化一個新對象(接收者)。

新增 :NSObject的類方法。 分配接收類的新實例,向其發送初始化消息,然后返回初始化的對象。

分配與初始化一起

new = alloc + init

使用+ new的唯一好處是它更加簡潔。 如果需要為類的初始化程序提供參數,則必須使用+ alloc和-initWith ...方法。

  • 新不支持自定義初始化程序
  • alloc-init比new更顯式

一般認為,您應該使用自己喜歡的任何東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM