美文网首页
iOS 中的copy

iOS 中的copy

作者: lixiaoshuai | 来源:发表于2018-12-20 10:33 被阅读4次

iOS 关于拷贝:

  1. 如何让自定义的类实现拷贝功能?
    实现 <NSCopying> 协议 -(id) copyWithZone:(NSZone*)zone;
    在方法中创建一个新的对象
    对于自定义类调用copy方法即可拷贝一个新的对象

  2. 拷贝功能对私有变量的处理?
    在copyWithZone: 中单独拷贝数据值

  3. 对需要深拷贝的值单独写一个深拷贝方法?
    将需要深拷贝的集合值,在深拷贝方法中单独拷贝
    深拷贝集合类的参考方法 -initWithArray: copyItem:

  4. 具有可变版本的容器类拷贝的实现规则
    immutable copy // 指针指向,不拷贝新值
    immutable mutableCopy // 生成可变对象,不拷贝集合中每一个对象(内容浅拷贝)
    mutable copy // 生成不可变对象,不拷贝集合中每一个对象(内容浅拷贝)
    mutable mutableCopy // 指针指向,不拷贝新值

  5. 重写copy属性的set方法(arc)

  • setName:(NSString*)name{
    _name = name;
    }

  • setName:(NSString*)name{
    if (name == _name){ // 不建议 1. 每次均需要执行if,拖慢速度 2.给一个属性连续两次设置同样的值代码本来就不合理
    _name = name;
    }
    }

可以在set方法进行的逻辑:
a:对参数的限制条件 例如 :(设置速度,限制速度必须在 0 -500 之间)

tips:设置readonly不能设置set方法的

  1. 对于copy的对象也可将 权限属性 设置为readonly

相关文章

  • iOS 中 copy 的原理

    iOS 中 copy 的原理iOS 中 copy 的原理

  • iOS开发之copy

    iOS中copy有两种copy和mutableCopy

  • iOS【copy,strong,retain,weak和assi

    摘录:iOS中copy,strong,retain,weak和assign的区别 copy,strong,weak...

  • iOS开发-iOS中的拷贝

    今天来说一下iOS中的copy。 在iOS中,拷贝有两种方式,深拷贝(Deep copy)和浅拷贝(Shallow...

  • iOS干货收集

    programming iOS - layer iOS中copy,strong,retain,weak和assig...

  • iOS中的Copy

    copy的概念特点 copy产生一个新副本的过程,利用一个原对象产生一个新对象copy:创建一个不可变的副本(NS...

  • ios中的copy

    为什么要专门写一篇文章来讲这copy?以前在开发的时候只知道什么时候用,但是在面试的时候,会经常被问到,一研究,发...

  • iOS 中的copy

    iOS 关于拷贝: 如何让自定义的类实现拷贝功能?实现 协议 -(id) copyWith...

  • ios属性修饰符的使用

    iOS中属性修饰符 ios中的主要属性修饰符包含: copy assign retain strong weak ...

  • iOS中属性修饰符及区别

    iOS中属性修饰符 ios中的主要属性修饰符包含: copy assign retain strong weak ...

网友评论

      本文标题:iOS 中的copy

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