浅拷贝 伪拷贝 深拷贝
2015-12-06 16:54
363 查看
/ //伪拷贝--就是假拷贝,并没有真正的拷贝,地址和person01地址一样,两个指向一个地址
//- (id)copyWithZone:(NSZone*)zone
//{
// return[self retain];//千万不要写成returnself ,不然会成野指针~~
//}
////浅拷贝--对象是2个,但是内容是同一个,人是两份,拷贝的姓名是个指针.这种拷贝是把name的首地址给传进来了,年龄拷贝进来了,但真的年龄还是一份
//-(id)copyWithZone:(NSZone *)zone
//
//{
// NSString*name=self.name;
// NSUIntegerage=self.age;
// Person*newPerson=[[Personalloc]initWithName:name age:age];
// returnnewPerson;
//
//}
//深拷贝--对象是2个,但是内容也是两个,你改什么内容对我没有影响~名字和年龄各两份,各存放
- (id)copyWithZone:(NSZone*)zone
{
NSString
*name=self.name;
NSUInteger
age=self.age;
NSString
*newName=[NSStringstringWithFormat:@"%@",name];
Person
*newPerson=[[Personalloc]initWithName:newNameage:age];
return
newPerson;
}
//- (id)copyWithZone:(NSZone*)zone
//{
// return[self retain];//千万不要写成returnself ,不然会成野指针~~
//}
////浅拷贝--对象是2个,但是内容是同一个,人是两份,拷贝的姓名是个指针.这种拷贝是把name的首地址给传进来了,年龄拷贝进来了,但真的年龄还是一份
//-(id)copyWithZone:(NSZone *)zone
//
//{
// NSString*name=self.name;
// NSUIntegerage=self.age;
// Person*newPerson=[[Personalloc]initWithName:name age:age];
// returnnewPerson;
//
//}
//深拷贝--对象是2个,但是内容也是两个,你改什么内容对我没有影响~名字和年龄各两份,各存放
- (id)copyWithZone:(NSZone*)zone
{
NSString
*name=self.name;
NSUInteger
age=self.age;
NSString
*newName=[NSStringstringWithFormat:@"%@",name];
Person
*newPerson=[[Personalloc]initWithName:newNameage:age];
return
newPerson;
}
相关文章推荐
- Jquery给easyui的表单元素赋值,获取值总结
- 动态分配内存与二级指针
- 【AMPPZ2014】【BZOJ4151】The Cave
- windows linux Git使用总结
- 信息安全系统设计基础实验五 20135211&20135216
- Date对象
- linux笔记 第九天 软raid、bash循环进阶、lvm详解、压缩和归档工具
- 20151206 重新搭建oracle11g环境碰到的困难 Linux篇
- android studio使用异常解决记录
- 信息安全系统设计基础实验四 20135211&20135216
- 数据注解特性--Table
- 动态规划算法(后附常见动态规划为题及Java代码实现)
- python 在cmd下面报错
- 4000 Lighter ViewControllers
- CentOS6.7系统文本安装
- 【android】seekbar 样式自定义
- 封装
- http响应状态码
- ==== 如何写自己的回调函数
- 图像融合