0

私は次の初期化子を持っています:

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

イニシャライザ内で、後で実行できるようにブロックをプロパティに割り当てたいと思います。

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

Xはどうあるべきか、そしてその理由は?(ARCを使用)

4

2 に答える 2

1

ブロックをコピーする必要があります。

詳細が必要な場合は、このトピックに関するMikeAshの記事を参照してください。詳細が必要ない場合でも、それを読む必要があります。

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 に答える