我想将Objective-C块存储在属性中以备后用。我不确定如何做,所以我进行了一些谷歌搜索,关于这个主题的信息非常少。但最终我还是找到了解决方案,我认为值得与其他像我一样的新手分享。
最初我认为我需要手动编写属性来使用Block_copy和Block_release。
幸运的是,我发现块是NSObjects,-copy
/-release
等同于Block_copy
/Block_release
。因此,我可以使用@property (copy)
来自动生成setter和getter。
@property(copy)void (^doStuff)(void);
,不需要更多或更少的东西。现在这个问题在Apple文档中已经被解释得非常清楚(包括原因)。这是再简单不过的答案了。实际上,整个问题现在已经没有什么历史价值了,因为你可以直接使用Swift。 - Fattie