• NS对象的深复制与浅复制


     1. copy 和 mutableCopy

      不可变 copy : (非容器或容器)浅复制

       可变(copy, mutableCopy), 不可变(mutableCopy): (非容器或容器)深复制

       容器内对象, 始终为浅复制

    2. initWithArray:   和 initWithArray: copyItems:  (Dictionary, Set 相同)

      initWithArray:   容器为新地址, 容器内对象为地址拷贝

      initWithArray: copyItems: 容器为新地址, 容器内对象调用copy方法构成新容器成员      

    3. arrayWithArray: 与initWithArray

      initWithArray:     等同于 alloc → init  引用指数加1

      arrayWithArray:  a. alloc init  引用指数加1 方法内持有;

                                   b. 返回后默认注册到autoreleasePool;

                                   c. 超过方法外的自动变量,release一次 引用指数减1

                                   d. 方法调用方使用__strong自动变量强持有一次,引用指数加1

          所以说前者更高效

  • 相关阅读:
    TRECT的使用
    杂记
    Delphi中停靠技术的实现
    高级停靠(Dock)技术的实现
    高级停靠(Dock)技术的实现
    vue组件内的元素转移到指定位置
    mintui loadmore组件使用+代码优化
    vue项目进行nuxt改造
    blob与arraybuffer
    vue项目首屏加载过久处理笔记
  • 原文地址:https://www.cnblogs.com/hushuai-ios/p/5159046.html
Copyright © 2020-2023  润新知