zoukankan      html  css  js  c++  java
  • 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

          所以说前者更高效

  • 相关阅读:
    第四周总结&实验报告二
    第三周实验总结
    2019秋第二周总结
    2019春期末总结
    C语言第四次实验报告
    第三次设计报告
    2019第二次实验设计报告
    2019第一次实验设计报告
    2019第十二周作业
    第五周课程总结&试验报告(三)
  • 原文地址:https://www.cnblogs.com/hushuai-ios/p/5159046.html
Copyright © 2011-2022 走看看