我对Objective-C相对较新,我遇到了一个2D NSMutableArray的问题,并且在将一个NSMutableArray的内容添加到另一个时,它的行为。
我有一个包含NSMutableArray的单例类。该数组用于存储NSURL值。 在我的程序中的某个点,我需要将这个NSMutableArray作为一个整体添加到另一个NSMutableArray。
我这样做: [arrayIWantStuffIn addObject:mySingleton.singletonMutableArray];
我遇到的问题是我需要重置我的singltonMutableArray以开始存储一组新的NSURL值。上面的addObject函数似乎是通过引用传递而不是传递值,所以当我这样做时:
[mySingleton.singletonMutableArray removeAllObjects];
也会删除存储在arrayIWantStuffIn中的数据。
如何通过值而不是引用来实现将NSMutableArray添加到另一个NSMutableArray的“深度”addObject?
答案 0 :(得分:0)
你实际上不需要另一个mutableCopy的深拷贝。只需执行以下操作即可完成此操作
[arrayIWantStuffIn addObject: [[mySingleton.singletonMutableArray mutablCopy] autorelease]];
当清除或更改singletonMutableArray时完成后,它将不会更改arrayIWantStuffIn中的项目,您仍然可以单独修改内容。