在Foundation中,可以通过copy
方法来实现深拷贝(deep copy)和浅拷贝(shallow copy)。深拷贝是指创建一个新的对象,同时将对象的所有属性和子对象也进行拷贝;而浅拷贝是指创建一个新的对象,但是只拷贝对象本身的属性,而不拷贝子对象。
下面是使用copy
方法实现深拷贝和浅拷贝的示例:
// 创建一个原始对象
NSMutableArray *originalArray = [NSMutableArray arrayWithObjects:@1, @2, @3, nil];
// 深拷贝
NSMutableArray *deepCopyArray = [originalArray mutableCopy];
// 浅拷贝
NSMutableArray *shallowCopyArray = [originalArray copy];
// 改变原始对象的值
[originalArray replaceObjectAtIndex:0 withObject:@4];
NSLog(@"Original Array: %@", originalArray);
NSLog(@"Deep Copy Array: %@", deepCopyArray);
NSLog(@"Shallow Copy Array: %@", shallowCopyArray);
在上面的示例中,deepCopyArray
是通过mutableCopy
方法进行深拷贝,所以当改变原始对象originalArray
的值时,deepCopyArray
不会受到影响。而shallowCopyArray
是通过copy
方法进行浅拷贝,所以当改变原始对象originalArray
的值时,shallowCopyArray
也会受到影响。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。