zoukankan      html  css  js  c++  java
  • 深浅拷贝

    深拷贝 与 浅拷贝

    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;
  • 相关阅读:
    mysql导出某张表的部分数据
    linux命令行实用快捷键
    mysql导出数据库某些表的数据
    二进制日志过期时间设置expire_logs_days
    进程信息
    安装mysql-workbench
    create user
    系统io统计
    mysqldump与mydumper
    系统负载监控
  • 原文地址:https://www.cnblogs.com/sunyanyan/p/5301931.html
Copyright © 2011-2022 走看看