NSCopying简析
作者:佚名
上传时间:2019-04-28
版权申诉
NSCopying简析
用到NSCopying的时候并不多,但还是有必要知道最基本的用途,比方说数组的拷贝操作,需要注意的是,数组的拷贝操作并不是执行了 copy 方法,而是需要执行 initWithArray : copyItems : ,这点需要注意.
源码:
//
// Model.h
// NSCopy
//
// Created by YouXianMing on 15/5/2.
// Copyright (c) 2015年 YouXianMing. All rights reserved.
//
#import <Foundation/Foundation.h>
@interface Model : NSObject <NSCopying/* 继承NSCopying协议 */>
// 对象类型
@property (nonatomic, strong) NSString *name;
@property (nonatomic, strong) NSNumber *age;
// 基本数据类型
@property (nonatomic, assign) BOOL isMale;
@end
//
// Model.m
// NSCopy
//
// Created by YouXianMing on 15/5/2.
// Copyright (c) 2015年 YouXianMing. All rights reserved.
//
#import "Model.h"
@implementation Model
- (id)copyWithZone:(NSZone *)zone {
// 获取拷贝内容
Model *copy = [[[self class] allocWithZone:zone] init];
// 基本属性的类型本身实现了copy协议
copy.name = [_name copy];
copy.age = [_age copy];
// 常规类型属性仅仅需要赋值即可
copy.isMale = _isMale;
return copy;
}
@end
控制器源码:
//
// ViewController.m
// NSCopy
//
// Created by YouXianMing on 15/5/2.
// Copyright (c) 2015年 YouXianMing. All rights reserved.
//
#import "ViewController.h"
#import "Model.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// 对象1
Model *modelOne = [Model new];
modelOne.name = @"YouXianMing";
modelOne.age = @(28);
// 对象1的复制
Model *modelCopy = [modelOne copy];
// 打印信息
NSLog(@"%@ %@", modelOne, modelOne.name);
NSLog(@"%@ %@", modelCopy, modelCopy.name);
// 数组
NSArray *array = @[modelOne, modelCopy];
// 数组的复制
NSArray *arrayCopy = [[NSArray alloc] initWithArray:array copyItems:YES];
// 打印信息
NSLog(@"%@", array);
NSLog(@"%@", arrayCopy);
}
@end
简单的分析:
免责申明:文章和图片全部来源于公开网络,如有侵权,请通知删除 server@dude6.com
用户评论
相关推荐
NSCopying简析
NSCopying简析 用到NSCopying的时候并不多,但还是有必要知道最基本的用途,比方说数组的拷贝操作,需要注意的是,数组的拷贝操作并
telnet简析
简单有效的介绍telnet
TXT
0B
2019-01-10 09:09
Nosql简析
自己做的PPT,希望得到大家的指点一下,感激不尽啊
PPT
0B
2019-01-17 06:26
简析createDelegate
NULL博文链接:https://yiminghe.iteye.com/blog/394170
zip
0B
2019-09-21 23:53
vb字模简析
提取及其LED显示系统,包括了字模提取原理,字模的获取及发送,单片机部分的说明。
PDF
0B
2019-01-15 23:54
openstack Neutron简析
openstackNeutron简析
PPTX
0B
2019-06-04 03:53
Android PhoneGap简析
Android PhoneGap analysis
doc
0B
2019-06-27 22:06
802.11协议简析
802.11协议的简单介绍 IEEE Standard for Information technology Telecommunications and information exchange
RAR
0B
2018-12-28 19:39
Resiprocate源码简析
分析架构以及设计模式。在原版基础上做了几点改进:1、修改了错别字2、加了少量脚注3、层次,以便文档视图
RAR
0B
2020-06-02 16:39
linux启动简析
linux启动简析,详细介绍了linux的启动过程,帮助用户了解其大概的启动流程。
DOCX
63KB
2020-09-21 13:01