1.自定义的类能够被copy只需要遵守NSCopying协议
2.实现协议中的copyWithZone方法
3.在协议额的方法中创建一个副本对象,然后将当前对象的值赋值给副本对象既可
typedef void (^myBlock)(void);
@interface Student : NSObject<NSCopying,NSMutableCopying>
@property (nonatomic, copy) myBlock pBlock;
@property (nonatomic, copy) NSString * name;
@end
NSCopying协议方法
- (id)copyWithZone:(NSZone*)zone{
//1.创建一个新的对象
Student*p = [[[selfclass]allocWithZone:zone]init];
//2.设置当前对象的内容给新的对象
p.name=_name;
//3.返回新的对象
returnp;
}
NSMutableCopying协议方法
- (id)mutableCopyWithZone:(NSZone*)zone{
//1.创建一个新的对象
Student*p = [[[selfclass]allocWithZone:zone]init];
//2.设置当前对象的内容给新的对象
p.name=_name;
//3.返回新的对象
returnp;
}
网友评论