7

Web サービスが停止してサーバーと通信している間、ブロックを保存しています。したがって[myBlock copy]、ブロックへの参照を保持するために使用しています。

データを取得してブロックを実行したら、 を呼び出しますか[myBlock release]、それとも を使用しBlock_release(myBlock)ますか? 両方への参照を見つけることができます。

4

2 に答える 2

9

Block_release()Objective-C ではなく、C でのみブロックを使用している場合に使用します。

Objective-C を使用する場合、releaseおよびcopyメソッドを使用して、コードのルック アンド フィールを周囲の ObjC の残りの部分に近づけることができます。

どちらもまったく同じことを行うと思いますが、objc メソッドはBlock_release()とにかくへの呼び出しのラッパーにすぎません。

于 2012-04-23T08:18:18.813 に答える
5

参考文献で説明されているように、コピー/リリースの合計はゼロに等しくなければなりません。したがって、Objective-Cを使用している場合は、を呼び出すことができ[block copy]ます[block release]

Cを使用している場合は、とを使用する必要がBlock_copy()ありBlock_release()ます。

Jasarienが書いたように、彼らはおそらく同じことをしているので、それらを交換して使用することができます。ただし、規則の一貫性を保つことが重要です。したがって、使用するとき[block copy][block release]Block_release()

于 2012-04-23T08:45:02.363 に答える