自定义类实现copy

1.自定义的类能够被copy只需要遵守NSCopying协议

2.实现协议中的copyWithZone方法

3.在协议额的方法中创建一个副本对象,然后将当前对象的值赋值给副本对象既可

typedef void (^myBlock)(void);

@interface Student : NSObject

@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;

}

你可能感兴趣的:(自定义类实现copy)