2011-07-13 10 views
5

は、署名は、ソートの定義されています。戻り値の代わりに反復継続フラグのほとんどのブロック使用引数がなぜですか?ほとんどの反復ブロックの

void(^)(id obj, BOOL* stop) 

それはフラグを停止させるため、戻り値を使用して良く見えます。

BOOL(^)(id obj) 

は、しかし、私は彼らが代わりに、より短いと便利なフォームの現在のフォームを使用することを決定するために作られた強力な理由があると信じています。彼らはなぜ停止フラグの引数を使用するのですか?

答えて

4

確かにどちらの方法でもうまくいくが、このように考える:forまたはwhileループの最後にcontinueステートメントを使用する必要がありますか?もちろん、自動的に起こるわけではありません。ループを止めたい場合は、breakを使用してください。

ブロックベースの列挙方法と同様です。 YESを返す必要はありません。列挙を続行するかどうかは、自動的に行われるかどうかを指定するために指定する必要はありません。ただし、列挙を停止する場合は、*stopYESに設定するだけです。

関連する問題