• 深浅拷贝


    深拷贝 与 浅拷贝

    1. 对非集合类对象的copy操作:

    在非集合类对象中:对 immutable 对象进行 copy 操作,是指针复制,mutableCopy 操作时内容复制;对 mutable 对象进行 copy 和 mutableCopy 都是内容复制。用代码简单表示如下:

    [immutableObject copy] // 浅复制
    [immutableObject mutableCopy] //深复制
    [mutableObject copy] //深复制
    [mutableObject mutableCopy] //深复制

    1. 集合类对象的copy与mutableCopy

    集合类对象是指 NSArray、NSDictionary、NSSet ... 之类的对象。集合对象的内容复制仅限于对象本身,对象元素仍然是指针复制。用代码简单表示如下:

    [immutableObject copy] // 浅复制
    [immutableObject mutableCopy] //单层深复制
    [mutableObject copy] //单层深复制
    [mutableObject mutableCopy] //单层深复制
    

    使自定义类实现拷贝copy

    若想令自己所写的对象具有拷贝功能,则需实现 NSCopying 协议。如果自定义的对象分为可变版本与不可变版本,那么就要同时实现 NSCopying 与 NSMutableCopying 协议。

    具体步骤:

    1. 需声明该类遵从 NSCopying 协议

    2. 实现 NSCopying 协议。该协议只有一个方法:

       - (id)copyWithZone:(NSZone *)zone;
  • 相关阅读:
    iOS使用第三方管理工具
    Mysql忘记密码怎么办
    支付宝支付流程
    关于iOS9 HTTP不能正常使用的解决方法
    ios项目开发汇总
    sqlite3
    Drupal 7.31版本爆严重SQL注入漏洞
    Google发布SSLv3漏洞简要分析报告
    Linux“Bash”漏洞大爆发
    Discuz 5.x/6.x/7.x投票SQL注入分析
  • 原文地址:https://www.cnblogs.com/sunyanyan/p/5301931.html
Copyright © 2020-2023  润新知