一般情况下像C语言的复制语句,会将是对一个对象的引用复制;例子:
a = 3 ; b = a;这个例子将a指向内存内容为3的,然后后面的赋值语句,只是再一次将b指向了a所指向的;
这是对副本进行操作不影响原来对象,但如果对原来对象进行操作,会对副本进行影响;
利用归档进行深层复制:
data = [NSkeyedArchiver archivedDataWithRootObject: dataArray];
dataArray2 = [NSKeyedUnarchiver unarchiveObjectWithData;data];
或者:
dataArrar2 = [NSKeyedUnarchiver unarchiveObjectWithData: [ NSKeyedArchiver archivedDataWithRootObject: dataArray]];