天天看點

NSArray、NSMutableArray的copy、mutableCopy

對于NSArray和NSMutableArray的copy問題,有兩個點需要确定,一個是複制後數組是否可變,二是複制操作是複制的指針還是複制的内容(淺拷貝、深拷貝)。

總結如下(前提,數組中内容是NSString等基本資料類型,如果是自定義類型,則需要看是否實作NSCopy協定以及具體實作方法):

對于不可變數組:copy後仍然不可變、隻複制指針(淺拷貝)、mutableCopy後變為可變數組并且複制記憶體(深拷貝)

對于可變數組:copy後不可變、複制記憶體(深拷貝)、mutableCopy後仍為可變數組并且複制記憶體(深拷貝)