OC--copyWithZone:(NSZone *)zone
来源:互联网 发布:助手网络连接失败 编辑:程序博客网 时间:2024/05/31 18:59
通过-(id)copyWithZone:(NSZone *)zone;我们就可以实现给对象提供拷贝的功能。对于很多现有类,如NSString,NSDictionary,。。。这个方法已经实现,但是当我们需要多次用到一个对象时,比如说物流的信息,就需要自己来动手写CopyWithZone的方法。
1、实现NSCopying:不继承copyWithZone:的类,使用alloc和init...。
2、实现NSCopying:继承copyWithZone:的类,调用父类的copyWithZone:。如果超类的实现使用NSCopyObject功能,必须对retain对象的指针实例变量作出明确的指派。
3、实现NSCopying:通过retain原有的,而不是创建一个新的副本,如果类和它的内容是不可改变的。
如果子类从它的超类继承NSCopying,并声明了额外的实例变量,子类在重写copyWithZone:妥善处理自己的实例变量之前需先调用父类的实现。
用户自定义类遵守<NSCopying>协议和<NSMutableCopying>协议,则必须实现copyWithZone方法和mutableCopyWithZone方法,否则该类对象无法响应copy和mutableCopy消息
如果你的类产生了子类,那么copyWithZone:方法也将被继承
Student *stu = [[Student allocWithZone: zone] init];
该方法应该改为: Student *stu = [[[self class]allocWithZone: zone]init];
如果编写一个类的copyWithZone:方法那么子类的方法应该先调用父类的copy方法以复制继承来的copy实例变量.
1 0
- OC--copyWithZone:(NSZone *)zone
- -(id)copyWithZone:(NSZone *)zone
- iOS开发-关于allocWithZone/copyWithZone/NSZone
- NSZone
- NSZone
- NSZone
- NSZone
- NSZone
- OC和C++混编 系统类NSObjCRuntime, NSZone等报错问题
- zone
- IOS NSZone
- NSZone理解
- NSZone不是个对象
- iOS-Bug: copyWithZone:
- iOS NSZone 相关介绍,中文版
- iOS NSZone 相关介绍,中文版
- IOS学习笔记之NSZone
- iOS开发之关于NSZone
- log4j.properties详解和实例
- ps素材网站
- CentOS 7.0,启用iptables防火墙
- 一次笔试
- Java构造函数到底有没有返回值?
- OC--copyWithZone:(NSZone *)zone
- Windows Embedded Standard 8 入门指南 3 of 5
- ASP.NET页面刷新:自动刷新页面的实现方法总结:
- Eclipse转Android Studio 项目过程中遇到的问题
- sql无法打开用户默认数据库,登录失败,用户‘sa’登录失败,错误:4064的解决方法
- java获取登陆用户ip和mac地址的方法
- angular JS的使用
- js中几种实用的跨域方法原理详解
- Windows Embedded Standard 8 入门指南 4 of 5