私は次の初期化子を持っています:
- (id) initWithBlock:(void(^)void) block;
イニシャライザ内で、後で実行できるようにブロックをプロパティに割り当てたいと思います。
typedef void(^block)(void);
@interface myClass()
@property (X, nonatomic) block theBlock;
@end
Xはどうあるべきか、そしてその理由は?(ARCを使用)
私は次の初期化子を持っています:
- (id) initWithBlock:(void(^)void) block;
イニシャライザ内で、後で実行できるようにブロックをプロパティに割り当てたいと思います。
typedef void(^block)(void);
@interface myClass()
@property (X, nonatomic) block theBlock;
@end
Xはどうあるべきか、そしてその理由は?(ARCを使用)
ブロックをコピーする必要があります。
詳細が必要な場合は、このトピックに関するMikeAshの記事を参照してください。詳細が必要ない場合でも、それを読む必要があります。
http://www.mikeash.com/pyblog/friday-qa-2009-08-14-practical-blocks.html
コピーを使用する必要があります。コピーされていないブロックはスタック上に存在します。スタックに何かを保持することは無意味です。