【问题标题】:What is the difference between "-copy" and "-copyWithZone:"?“-copy”和“-copyWithZone:”有什么区别?
【发布时间】:2012-08-16 10:45:56
【问题描述】:

我知道 copy 创建一个对象的不可变副本,但我只想知道 copywithzone 的工作原理以及 copy 和 copywithzone 之间的基本区别是什么

【问题讨论】:

    标签: objective-c ios cocoa foundation nscopying


    【解决方案1】:

    NSZone 是一个与 iOS 无关的遗留概念。默认情况下,NSObject 上的 -copy 将使用默认区域调用 -copyWithZone:

    【讨论】:

      【解决方案2】:

      copycopyWithZone: 的缩写,使用默认区域。

      您很少会直接调用copyWithZone:,尽管需要定义/实现它才能采用@protocol NSCopying。所以你通常只会在copyWithZone: 的实现中看到copyWithZone:。同样,您通常会避免实现copy,而只是让copy 的默认实现通过copyWithZone: 调用。

      【讨论】:

        猜你喜欢
        • 2014-07-25
        • 1970-01-01
        • 1970-01-01
        • 2022-07-22
        • 2019-02-16
        • 2021-11-01
        • 2016-09-11
        • 1970-01-01
        • 2010-10-02
        相关资源
        最近更新 更多