温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Foundation中如何实现深拷贝和浅拷贝

发布时间:2024-06-03 12:12:05 来源:亿速云 阅读:78 作者:小樊 栏目:移动开发

在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也会受到影响。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI