相关疑难解决方法(0)

将Objective-C块定义为属性 - 最佳实践

我最近遇到了一个Apple文档,它显示了一个块的以下属性声明:

@interface XYZObject : NSObject
@property (copy) void (^blockProperty)(void);
@end
Run Code Online (Sandbox Code Playgroud)

此外,本文还指出:

注意:您应该将copy指定为属性属性,因为需要复制块以跟踪其在原始范围之外的捕获状态.在使用自动引用计数时,您不必担心这一点,因为它会自动发生,但属性属性的最佳做法是显示结果行为.有关更多信息,请参阅块编程主题.

我还阅读了建议的块编程主题,但没有找到任何相关的内容.

我仍然很好奇为什么将块属性定义为"复制"是最佳实践.如果您有一个好的答案,请尝试区分ARC和MRC差异(如果有的话).

谢谢

objective-c ios objective-c-blocks automatic-ref-counting

15
推荐指数
3
解决办法
6847
查看次数