model的深拷贝

今天敲代码的时候,两个数组中放入同一套model数据,发现model的指针是一样的,操作其中一个数组的数据会导致另外一个数组的数据也跟着改变,所以必须给model数据做深拷贝

指针地址打印

通过copy深拷贝操作后如下:

指针地址打印

那么如何实现model的copy方法呢?

首先遵循<NSCopying, NSMutableCopying>协议

.h遵循协议

.m中实现方法

- (id)copyWithZone:(NSZone *)zone{

    ProductTagModel * model = [[ProductTagModel allocWithZone:zone] init];

    model.label_id = self.label_id;//self是被copy的对象

    model.label_img = self.label_img;
    
    model.label_name = self.label_name;
    
    model.isSelected = self.isSelected;

    return model;

}

- (id)mutableCopyWithZone:(NSZone *)zone{

    ProductTagModel * model = [[ProductTagModel allocWithZone:zone] init];

    model.label_id = self.label_id;//self是被copy的对象

    model.label_img = self.label_img;
    
    model.label_name = self.label_name;
    
    model.isSelected = self.isSelected;

return model;

}

感谢分享:https://www.jianshu.com/p/422f02449eda

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。