OC学习小结之copy语法
2015-03-22 21:47
295 查看
1)Copy和MutableCopy
一个对象使用copy和mutableCopy方法可以创建对象的副本copy:需要事先实现NSCopying协议,创建的副本是不可变副本(如NSString,NSArray,NSDictionary)
mutableCopy :需要先实现NSMutableCopying协议,创建的是可变副本(如NSmutableString,NSmutableArray,NSmutableDictionary)
深复制:内容拷贝,源对象和副本指向的是不同的两个对象。源对象引用计数器不变,副本计数器设置为1
浅复制:指针拷贝,源对象和副本指向的是同一个对象。对象的引用计数器+1,其实相当于做了一次retain操作
2) 常见的复制
这其中,只有当NNstring使用copy方式复制时为浅拷贝,其他均为深拷贝。
3)浅拷贝的测试
NSString *string = [[NSString alloc] initWithFormat:@"测试浅拷贝"];NSLog(@"%zi", [string retainCount]);
NSString *str = [string copy];
NSLog(@"%zi", [string retainCount]);
NSLog(@"%@", str);
[str release];
[string release];
测试结果
相关文章推荐
- OC语法学习小结
- OC 学习小结之点语法
- OC学习笔记十 copy语法
- OC语法学习小结
- OC语法学习小结
- OC语法学习小结
- 黑马程序员-我的第十篇学习日记:OC中点语法,@property和@synthesize,完整创建一个可用对象
- OC学习笔记之OC的核心语法
- OC语法之Copy
- 关于copy_to_user和copy_from_user的学习小结
- OC基础语法学习笔记
- 黑马程序员_OC学习之点语法
- 黑马程序员 OC------入门语法学习
- Object-c学习之路(oc点语法)
- Object-c学习之路(oc点语法)
- Objective-c学习笔记(二)oc的点语法
- Objective-c学习笔记(一)oc的基本语法
- OC学习那些事:点语法
- oc学习总结 oc和c语法上的区别
- Object-c学习之路十二(OC的copy)