2

例 #1

@property (nonatomic, copy) void (^errorBlock) (NSError *);

例 #2

@property (nonatomic, strong) void (^errorBlock) (NSError *);

ブロックはスタック上の標準変数であり、コピーを作成することでそれらをヒープに「移動」していることを知っています。

それで全部です?か否か?

4

1 に答える 1

1

違いはないはずです。http://clang.llvm.org/docs/AutomaticReferenceCounting.html#blocksによると、プロパティにはブロック型があるため

__strong パラメーター変数の初期化または __weak 変数の読み取りの一部として実行される保持を除いて、これらのセマンティクスがブロック ポインター型の値を保持することを要求する場合は常に、Block_copy の効果があります。

于 2013-05-07T22:09:22.537 に答える