關於NSMutableArray和NSArray的一些坑
阿新 • • 發佈:2019-01-10
今天在寫學習時突然遇到了陣列新增不進元素的問題,這些不注意的小坑(菜鳥可以借鑑,大神可以無視):
關於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如果不進行陣列初始化,同樣加不進元素的。
自行學習,不喜勿噴,歡迎指導~