我是相對較新的Objective-C和我有一個2D NSMutableArray的問題,它的行爲時,將一個NSMutableArray的內容添加到另一個。NSMutableArray的NSMutableArray,addObject問題
我有一個包含NSMutableArray的單例類。該數組用於存儲NSURL值。 在我的程序中的某個點上,我需要將此NSMutableArray作爲一個整體添加到另一個NSMutableArray。
我這樣做: [arrayIWantStuffIn addObject:mySingleton.singletonMutableArray];
我遇到的問題是我需要重置我的singltonMutableArray以開始存儲一組新的NSURL值。上面的addObject函數似乎是通過引用而不是按值傳遞的,所以當我這樣做時:
[mySingleton.singletonMutableArray removeAllObjects];
保存在arrayIWantStuffIn中的數據也會被擦除。
我該如何實現一個'deep'addObject,它是通過值而不是通過引用將NSMutableArray添加到另一個NSMutableArray?
這就像一個魅力。謝謝喬。只是確保我正確地理解了這一點,[mySingleton.singletonMutableArray mutableCopy]對我的singletonMutableArray做了一個深層副本,然後使用該副本作爲傳遞給addObject的對象? –
它不會對你的'singletonMutableArray'做一個深層次的拷貝,這樣mutableCopy在拷貝的時候仍然會指向相同的'NSURL',但是當你對'singletonMutableArray'進行修改時,它不會改變'arrayIWantStuffIn'反之亦然。另外'NSURL'是不可改變的,所以你不必擔心這些改變。 – Joe