iOS底层学习-day-25

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]; // 深拷贝
发布了31 篇原创文章 · 获赞 0 · 访问量 943

猜你喜欢

转载自blog.csdn.net/weixin_41732253/article/details/104011548