OC iOS中的Copy

作者: 绍清_shao | 来源:发表于2019-11-25 15:56 被阅读0次

目录

  • 作为关键词的时候
  • 作为函数的时候

作为关键词的时候

@property (nonatomic ,readwrite, strong) NSArray *array;
对赋值的对象进行内容的拷贝,与strong相反,strong是对引用拷贝,即同一引用。

作为函数的时候

[immutableObject copy] // 浅复制
[immutableObject mutableCopy] //深复制
[mutableObject copy] //深复制
[mutableObject mutableCopy] //深复制

NSString、NSArray、NSDictionary
调用copy,是对其对象指针的赋值
调用mutableCopy,是对其内容的赋值

NSMutableString、NSMutableArray、NSMutableDictionary
调用copy和mutableCopy,都是对其内容的赋值

如果strong关键词标识,但遇到mubleObject的copy会怎么样?

@property (nonatomic ,readwrite, strong) NSArray *array;
 NSArray *array = @[ @1, @2, @3, @4 ];
 NSMutableArray *mutableArray = [NSMutableArray arrayWithArray:array];
   
[mutableArray addObjectsFromArray:array];

self.array = [mutableArray copy];
[mutableArray removeAllObjects];;
NSLog(@"%@",self.array);

array与mutableArray地址不一样,它们的对引用的对象进行操作,互不影响。

相关文章

  • OC iOS中的Copy

    目录 作为关键词的时候 作为函数的时候 作为关键词的时候 @property (nonatomic ,readwr...

  • iOS 中 copy 的原理

    iOS 中 copy 的原理iOS 中 copy 的原理

  • iOS 内存(系统引用的技术)了解

    iOS程序的内存布局 Tagged Pointer OC对象的内存管理 copy和mutableCopy

  • OC中的copy

    什么是copy? copy从字面意思来看就是“复制”、“拷贝”,是一个产生副本的过程。而在OC中,copy是用来复...

  • OC中的copy

    前言 不敢说覆盖OC中所有copy的知识点,但最起码是目前最全的最新的一篇关于 copy的技术文档了。后续发现有新...

  • OC中的copy

    1.所有被copy修饰的对象都会进行深copy吗? 答案:NO,例如block 全局block被copy修饰不会有...

  • This copy of libswiftCore.dylib

    在 ios12.2.0以上设备使用oc+swift混编的 framework 报如下错误:This copy of...

  • 「iOS」深拷贝和浅拷贝的区别

    为什么要写这篇博客?在iOS开发中,我们往往将copy和mutableCopy这两个OC的Api的意思来理解深浅拷...

  • iOS开发之copy

    iOS中copy有两种copy和mutableCopy

  • OC常见关键字

    转载自:iOS开发——OC篇&常用关键字的使用与区别 copy,assign,strong,retain,weak...

网友评论

    本文标题:OC iOS中的Copy

    本文链接:https://www.haomeiwen.com/subject/gekjwctx.html