美文网首页iOS基础学习
Objective-C基础学习之自定义的类实现copy操作

Objective-C基础学习之自定义的类实现copy操作

作者: WenJim | 来源:发表于2017-10-27 13:10 被阅读3次

    1.自定义类实现copy操作

    • 让类遵守NSCopying协议
    • 实现 copyWithZone:方法,在该方法中返回一个对象的副本即可。
    • 在copyWithZone方法中,创建一个新的对象,并设置该对象的数据与现有对象一致, 并返回该对象.

    zone: 表示空间,分配对象是需要内存空间的,如果指定了zone,就可以指定 新建对象对应的内存空间。但是:zone是一个非常古老的技术,为了避免在堆中出现内存碎片而使用的。在今天的开发中,zone几乎可以忽略

    • 无父类实现
    -(id)copyWithZone(NSZone *)zone{
    
       CustomMode *custom = [[[self class]  copyWithZone:zone]  init];
    
       Custom ->_a = [_a copyWithZone:zone];
    
       Custom -> _c = _c;//不是对象的 直接赋值
    
       Return custom;
    
    }
    
    • 有父类实现
      • 不调用父类方法, 无法拷贝父类中继承的属性
      • 不重新父类copyWithZone, 无法拷贝本来中的特有属性
    -(id)copyWithZone(NSZone *)zone{
    
    CustomModel *custom = [super copyWithZone:zone];
    ….
    Return custom;
    }
    

    相关文章

      网友评论

        本文标题:Objective-C基础学习之自定义的类实现copy操作

        本文链接:https://www.haomeiwen.com/subject/cjdrpxtx.html