iOS底层学习-day-25

前言-OC-内存管理篇

我是一名iOS开发者, iOS底层 菜鸟的进阶之路30天。

copy关键字

  • 拷贝的目的
    • 产生一个副本对象,跟源对象互不影响
    • 修改了源对象,不会影响副本对象
    • 修改了副本对象,不会影响源对象
  • iOS提供了2个拷贝方法
    • copy,不可变拷贝,产生不可变副本
      在这里插入图片描述
    • mutableCopy,可变拷贝,产生可变副本
      在这里插入图片描述
    • 例子1:
NSString *str1 = [NSString stringWithFormat:@"test”];//str1不管是NSMutableString,还是NSString都一样

// 浅拷贝,指针拷贝,没有产生新对象
NSString *str2 = [str1 copy]; // 返回的是NSString 

 // 深拷贝,内容拷贝,有产生新对象
NSMutableString *str3 = [str1 mutableCopy]; // 返回的是NSMutableString
  • 深拷贝和浅拷贝
    • 浅拷贝:指针拷贝,没有产生新的对象
    • 深拷贝:内容拷贝,产生新的对象
    • 例子2:
NSMutableString *str1 = [[NSMutableString alloc] initWithFormat:@"test"];

NSString *str2 = [str1 copy]; // 深拷贝 但是不可以修改里面的内容

NSMutableString *str3 = [str1 mutableCopy]; // 深拷贝
发布了30 篇原创文章 · 获赞 0 · 访问量 846
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览