16.copy与mutableCopy
2016-02-19 21:04
295 查看
实现拷贝的方法
copy只会产生不可变的副本对象(比如NSString)
mutableCopy
只会产生可变的副本对象(比如NSMutableString)
自定义对象的拷贝
自定义对象要实现拷贝操作需要1.遵守
NSCopying协议
@interface XMGPerson() <NSCopying> @end
2.内部实现
- (id)copyWithZone:(NSZone *)zone方法
- (id)copyWithZone:(NSZone *)zone { Person *person = [[Person allocWithZone:zone] init]; person.age = self.age; person.money = self.money; return person; }
属性property
中copy描述
1.@property (nonatomic, copy) NSString *name; //本质上实现的set方法为 - (void)setName:(NSString *)name { _name = [name copy]; } 如@property (nonatomic, strong)NSString *name; //本质上实现的set方法为 - (void)setName:(NSString *)name { _name = name; //直接赋值 }
2.当 @property (nonatomic, copy) NSMutableString *name;这里用
copy描述不合适,因为
copy描述时name属性值永远是不可变,若外部文件使用name属性时,可能调用NSMutableString的方法,程序会出错,所以这里定义为NSMutableString是不合理的。
相关文章推荐
- NSString与C字符串之间的相互转换
- NSString 用法2
- NSString 用法3
- IOS字符串拼接方法小结
- ios NSString 使用
- OC学习之--字符串类&数组类&值对象
- 字符串处理,数据类型
- IOS开发-Foundation笔记
- NSString为啥要使用Copy属性
- 字面量语法的好处
- 字符串的获取
- isEqualToString的内部实现
- 字符串的判断
- 字符串重组
- 黑马程序员----OC学习NSString使用方法
- Objectvie-C之 NSString 处理技巧<一>:分割字符串
- IOS 字符串中去除特殊符号 stringByTrimmingCharactersInSet 应该用于账号登录等
- Objective-C字符串与数组
- NSString/NSArray/NSDictionary/NSSet方法的总结
- NSString 纯数字判断~~~