我最近看到了一个苹果文档,其中展示了一个块的以下属性声明:
@interface XYZObject : NSObject
@property (copy) void (^blockProperty)(void);
@end
此外,这篇文章指出:
注意:您应该将属性属性指定为copy,因为需要复制一个块来跟踪其捕获状态以在原始范围之外进行访问。当使用自动引用计数时,您无需担心此问题,因为它会自动发生,但属性属性最佳实践是显示所得到的行为。有关更多信息,请参见块编程主题。
我还阅读了建议的块编程主题,但没有找到相关的内容。
我仍然很好奇为什么将块属性定义为“copy”是最佳实践。如果您有一个好答案,请尝试区分ARC和MRC之间的差异(如果有的话)。
谢谢