0
ブロックが外部の変数を変更したい場合、この変数はブロック自体でヒープにコピーする必要があるため、キーワード__block
を使用して記述する必要があります。iOSブロックで__blockを使用せずに変数を変更する方法
しかし、__block
を使用したくない場合でも、変数を変更する方法はありますか?
auto
の代わりにglobal
またはstatic
に変数を設定して、静的メモリ領域に格納することができると考えました。
または、ポインタに設定して、ヒープに割り当てられたコンテンツをポイントできますか?私はうまくいかなかったこのケースを試しました、なぜ私は知りたいのですが。
「必須」と「必須」とはどういう意味ですか?何を正確に避けようとしていますか?それは必要ではありませんが、パフォーマンスに役立つかもしれません。 –
@ JulianF.Weinert、私の理解は、将来の使用のために、自動的にその変数を持つブロックをヒープにコピーすることです、そうでなければブロックとその変数はスタックで解放されます。 – Boris
はい、ブロック内のグローバル変数やstatic変数を変更することができます。 – newacct