当前位置: 首页 > news >正文

网站建设有什么好处流量推广平台

网站建设有什么好处,流量推广平台,代做论文网站,兰州中川国际机场电话1.NSCopying ————> - (id)copy; NSCopying是一个与对象拷贝有关的协议。如果想让一个类的对象支持拷贝,就需要让该类实现NSCopying协议。NSCopying协议中的声明的方法只有一个- (id)copyWithZone:(NSZone *)zone。当我们的类实现了NSCopying协议,…
1.NSCopying ————> - (id)copy; 
NSCopying是一个与对象拷贝有关的协议。如果想让一个类的对象支持拷贝,就需要让该类实现NSCopying协议。
NSCopying协议中的声明的方法只有一个- (id)copyWithZone:(NSZone *)zone。
当我们的类实现了NSCopying协议,通过类的对象调用copy方法时,copy方法就会去调用我们实现的- (id)copyWithZone:(NSZone *)zone方法,实现拷贝功能。
- (id)copyWithZone:(NSZone *)zone{ 
PersonModel *model = [[[self class] allocWithZone:zone] init]; 
model.firstName = self.firstName; 
model.lastName = self.lastName; 
//未公开的成员 model->_nickName = _nickName; return model; 
}
说明:在- (id)copyWithZone:(NSZone *)zone方法中,一定要通过[self class]方法返回的对象调用allocWithZone:方法。
因为指针可能实际指向的是PersonModel的子类。这种情况下,通过调用[self class],就可以返回正确的类的类型对象。
  1. //无子类是可以这样实现  
  2.    Fraction *newFract = [[Fraction allocWithZone:zone] init];  
  1. //有子类时,需要这样实现  
  2.     Fraction *newFract = [[[self class] allocWithZone:zone] init]; 
举例:

例如:
B = A.copy.
对对象进行copy操作,会得到一个新的对象,但是其属性,其指针跟之前是同一个地址。 
A属性值改变时,同一个地址B的值也会改变。 
A属性地址如果变了,B的值不会受到影响。B还是指向原先的地址。
注意: NSString , NSArray,NSDictionary,NSSet 进行copy 不会产生新的对象。 
2.NSMutableCopying - (id)mutableCopy;
NSCopying协议与NSMutableCopying的区别主要是在于,返回的对象是否是可变类型的。以Foundation框架的NSArray为例
NSArray *nameArray = @[@"Jim", @"Tom", @"David"]; 
NSArray *copyArray = [nameArray copy]; 
NSMutableArray *mutableCopyArray = [nameArray mutableCopy];
[mutableCopyArray addObject:@"Sam”]
NSArray对象调用copy方法时,copy方法会调用- (id)copyWithZone:(NSZone *)zone,得到对象的一份拷贝,但得到的对象还是不可变的对象。而NSArray对象调用mutableCopy方法时,mutableCopy方法会调用- (id)mutableCopyWithZone:(NSZone *)zone,得到可变的对象。
所以,如果自定义类具有可变和不可变的区别,想让它支持拷贝时,就需要同时实现NSCopying和NSMutableCopying,在- (id)copyWithZone:(NSZone *)zone返回的是不可变对象,在- (id)mutableCopyWithZone:(NSZone *)zone返回的是可变对象。
@property (nonatomic, copy) NSString *string;
对于NSString , NSArray,NSDictionary ,要使用copy关键字。 
因为其子类存在mutable 版本,使用strong,指向的是同一个地址,其值如果改动,都会改动。 
举例:
@property (nonatomic, strong) NSString *string;
NSMutableString *string = [NSMutableString stringWithString:@"哇"];
self.string = string;
[string appendString:@"哈哈"];
NSLog(@"%@",self.string);
浅拷贝和深拷贝
深拷贝:在拷贝对象自身时,将其底层数据也一并复制过去
Foundation框架中的所有collection类在默认情况下都执行浅拷贝,也就是说,只拷贝容器对象本身,而不复制其中数据。
浅拷贝之后的内容和原始内容均指向相同对象。
而深拷贝之后的内容所指的对象是原始内容中相关对象的一份拷贝。 
想要实现深拷贝,像数组,字典,集合 要实现下面这些方法。 

转载于:https://www.cnblogs.com/JShuo/p/8678222.html

http://www.lbrq.cn/news/2661463.html

相关文章:

  • 网站长尾词挖掘创意广告
  • 阿里巴巴网站是用什么技术做的seo搜索引擎优化题库
  • 如何做论文网站百度快照怎么弄
  • 做网站能不能放暴露图片品牌线上推广方案
  • 商贸网站建设网络推广靠谱吗
  • 昆明市做网站淘宝排名查询工具
  • 网站开发要学多久全网营销方案
  • 信阳建网站聚名网域名
  • 畜牧企业网站模板aso优化是什么意思
  • 公司网站维护建设费入什么科目百度seo排名优化排行
  • 关于色彩搭配的网站沈阳seo推广
  • wordpress手机验证免插件seo搜索优化网站推广排名
  • github个人网站模板百度关键词下拉有什么软件
  • 南京网站建设设计怎么制作百度网页
  • 国外网站众筹怎做aso优化报价
  • b站推广入口2022完善的seo网站
  • 单页站如何做网站seo优化陕西整站关键词自然排名优化
  • vip解析网站怎么做的深圳百度代理
  • 江苏建站速度忿国内前10电商代运营公司
  • 网站设计简单讲解知乎推广合作
  • 中国建设银行上海分行网站网上营销策略有哪些
  • 做网站除了域名还需要什么市场调研问卷调查怎么做
  • 免费建设物流网站windows优化大师自动安装
  • 如今做哪个网站能致富怎样搭建一个网站
  • 建网站选号域名现在搜什么关键词能搜到网站
  • 东莞seoseo优化排名优化推广网站怎么做最好
  • 百度搜寻网站缩略图如何添加大连网站seo
  • 穷游 网站开发免费引流app下载
  • wordpress用mysql5.6肇庆seo排名
  • 淘宝客 网站备案萝卜建站
  • PostgreSQL 批量COPY导入优化参数配置
  • 安装NodeJS和TypeScript简要指南
  • 谷歌搜索 sg_ss 逆向分析
  • [Oracle] TRUNC()函数
  • Pytest项目_day08(setup、teardown前置后置操作)
  • 【数据结构】排序(sort) -- 计数排序