gpt4 book ai didi

cocoa - NSColor 和 NSGradient 作为属性 - 有什么理由复制?

转载 作者:行者123 更新时间:2023-12-03 16:13:24 26 4
gpt4 key购买 nike

我非常熟悉想要复制属性与保留属性的原因。 (本质上是值与关系参数。例如,您几乎总是想要复制字符串。)

NSColor 和 NSGradient 怎么样?

它们都符合 NSCopying,但按照目前的实现,是不可变的。

想法?

最佳答案

不可变对象(immutable对象)通常会实现它们的 copyWithZone:方法为return [self retain] ,因为如果数据永远不会改变,那么单独制作数据副本是没有意义的。不过,他们仍然需要实现该方法,以便与任何需要 NSCopying 一致性的内容(例如 NSDictionary 键)兼容。

至于使用,我会坚持与其他“值”属性相同的使用模式,并且您不会看到任何性能差异,因为它们可能会调用 retain来自copy反正。这也涵盖了诸如添加具有 NSCopying 的重要实现的可变子类之类的情况。

关于cocoa - NSColor 和 NSGradient 作为属性 - 有什么理由复制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/263977/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com