【发布时间】:2011-05-04 04:02:26
【问题描述】:
我想将objective-c 块存储在一个属性中以供以后使用。我不知道该怎么做,所以我用谷歌搜索了一下,关于这个主题的信息很少。但我最终设法找到了解决方案,我认为它可能值得像我这样的其他新手分享。
最初我认为我需要手动编写属性才能使用 Block_copy 和 Block_release。
幸运的是,我发现blocks are NSObjects 和- copy/- release 等价于Block_copy/Block_release。所以我可以使用@property (copy) 来自动生成setter & getter。
【问题讨论】:
-
Can I use Objective-C blocks as properties? 可能重复这个问题比那里的问题更新。
-
完整的示例代码,UP-TO-DATE,为初学者简单解释:stackoverflow.com/a/20760583/294884
-
对于新读者来说,这个非常古老的问题现在已经过时了。你只是说 @property (copy)void (^doStuff)(void); 没有更多或更少的副本。现在,在苹果 doco 的许多地方都清楚地解释了这一点(包括为什么)。再简单不过了;这就是全部答案。事实上,整个问题仅具有历史价值,因为您现在只使用 Swift。
标签: objective-c objective-c-blocks