0

我有以下初始化程序:

- (id) initWithBlock:(void(^)void) block;

在初始化程序中,我想将块分配给一个属性,以便以后可以执行它。

typedef void(^block)(void);
@interface myClass()
@property (X, nonatomic)    block theBlock;
@end

X 应该是什么,为什么?(使用 ARC)

4

2 回答 2

1

您需要复制一个块。

如果您想了解详细信息,请参阅 Mike Ash 关于该主题的文章。即使您不想要详细信息,也应该阅读它。

http://www.mikeash.com/pyblog/friday-qa-2009-08-14-practical-blocks.html

于 2012-04-25T20:43:42.597 回答
0

你应该使用副本。尚未复制的块位于堆栈中。在堆栈上保留一些东西是没有意义的。

于 2012-04-25T19:42:56.510 回答