标签:
Copy基本使用(深浅拷贝)
把握:copy 和mutaleCopy 的区别
1:使用copy功能的前提是什么?
2:如何使用copy功能(重点理解)
一个对象可以调用copy或mutableCopy方法来创建一个副本对象
3:copy基本原则(重点理解)
4:为什么通过不可变对象调用了copy方法, 不会生成一个新的对象?
copy内存管理
1:浅拷贝和深拷贝的区别?本质是什么?
1.浅复制(浅拷贝,指针拷贝,shallow copy)
2.深复制(深拷贝,内容拷贝,deep copy)
copy和property
1:@property中的copy的作用是什么?
2:@property内存管理原则?
MRC
ARC
3:如何解决block中的循环引用?
如果对象中的block又用到了对象自己, 那么为了避免内存泄露, 应该将对象修饰为__block
__block Person *p = [[Person alloc] init]; // 1 p.name = @"lnj"; NSLog(@"retainCount = %lu", [p retainCount]); p.pBlock = ^{ NSLog(@"name = %@", p.name); // 2 }; NSLog(@"retainCount = %lu", [p retainCount]); p.pBlock();
20.自定义类实现Copy
1:自定义类如何实现copy操作?
- (id)copyWithZone:(NSZone *)zone { // 1.创建一个新的对象 Person *p = [[[self class] allocWithZone:zone] init]; // 2.设置当前对象的内容给新的对象 p.age = _age; p.name = _name; // 3.返回新的对象 return p; }
- (id)mutableCopyWithZone:(NSZone *)zone { // 1.创建一个新的对象 Person *p = [[[self class] allocWithZone:zone] init]; // 2.设置当前对象的内容给新的对象 p.age = _age; p.name = _name; // 3.返回新的对象 return p; }
标签:
原文地址:http://www.cnblogs.com/dreamWanweidong/p/4998808.html