我有以下初始化程序:
- (id) initWithBlock:(void(^)void) block;
在初始化程序中我想将块分配给属性,以便以后执行。
typedef void(^block)(void);
@interface myClass()
@property (X, nonatomic) block theBlock;
@end
X应该是什么?为什么? (使用ARC)
答案 0 :(得分:1)
您需要复制一个块。
如果您需要详细信息,请参阅Mike Ash关于该主题的文章。即使您不想要细节,也应该阅读它。
http://www.mikeash.com/pyblog/friday-qa-2009-08-14-practical-blocks.html
答案 1 :(得分:0)
你应该使用副本。未复制的块存在于堆栈中。在堆栈上保留一些东西是毫无意义的。