复制属性属性的典型用例是什么?

时间:2016-02-24 16:10:26

标签: ios objective-c properties

copy属性'属性的典型用例是什么?

我应该何时复制一些值而不是仅仅增加引用计数,因为它可以通过strong属性实现?

1 个答案:

答案 0 :(得分:1)

其他人之前已经回答过这个问题,所以我只想指出几个问题。

首先,Apple文档:https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/EncapsulatingData/EncapsulatingData.html,搜索“复制属性维护自己的副本”

以下是各种属性属性的非常好的解释:Objective-C declared @property attributes (nonatomic, copy, strong, weak)

这个答案很好地解释了一个非常典型的用例以及为什么要使用副本:NSMutableString as retain/copy

然而,两者都没有提到块属性,并且你从不想要使用其他而不是copy来阻止块(当然,假设你是'重新使用ARC,ARC甚至自动为你处理这个问题:

  

注意:您应该指定copy作为属性属性,因为a   需要复制块以跟踪其捕获的状态   原始范围。这不是你需要担心的事情   当使用自动参考计数时,会发生这种情况   自动,但它是属性属性的最佳实践   显示结果行为。有关更多信息,请参阅块   编程主题。

从这里开始:https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/ProgrammingWithObjectiveC/WorkingwithBlocks/WorkingwithBlocks.html