1. 程式人生 > >關於NSMutableArray和NSArray的一些坑

關於NSMutableArray和NSArray的一些坑

今天在寫學習時突然遇到了陣列新增不進元素的問題,這些不注意的小坑(菜鳥可以借鑑,大神可以無視):

關於NSArray

當想要逐個新增元素時會用到arrayByAddingObject這個方法,最初我是這麼寫的:

[array arrayByAddingObject:object1];`

但是發現沒有反應,後來才發現arrayByAddingObject這個方法返回的是一個數組,而產生的新陣列是copy的舊陣列,所以正確的寫法應該是:

array = [array arrayByAddingObject:object1];

關於NSMutableArray

NSMutableArray新增元素是用的addObject方法,這沒有返回值,所以程式碼如下:

[muatableArray addObject:object1];`

但是我又遇到了新增不進元素的情況,折騰了許久才發現,我在@property中定義的,而沒有對陣列進行陣列初始化,作為初學者,這點小小的忘記挖出的坑也不欠,所以正確的應該是:

mutableArray = [[NSMutableArray alloc]init];

[muatableArray addObject:object1];`

順便提一句,NSArray如果不進行陣列初始化,同樣加不進元素的。

自行學習,不喜勿噴,歡迎指導~