HOME » Natsu note » iOS » [Xcode] ローカル変数の一括変換

[Xcode] ローカル変数の一括変換 2011/08/05/|iOS,

コードを書いていて、ローカル変数の名前を変更したくなることってありませんか?

しかし、メソッド内で何度も使われているような変数の場合、手作業での置換は大変ですよね。だからといって、ファイル全体で文字列を検索して置換してしまったら、別のメソッドにも影響してしまいます。

そんなとき便利なのが、Xcodeの “Edit All in Scope” 機能です。

例えば、以下のメソッド内で、NSMutableString型の変数を”string”という名前にしていますが、これを”mutableString”に変更したい場合を考えてみましょう。

Edit All in Scope (select)


“string”変数は3回出てきますが、どれでもいいので変数の上にカーソルを持っていきます。全ての”string”変数の下に破線が出ました。

この状態で、”Command-Ctrl-E”を選ぶと”Edit All in Scope”モードになります。そのまま変数を書き換えると、破線が出ている全ての変数が同時に書き変わります。

Edit All in Scope (edit)


これは本当に便利。もちろんメソッドへの引数も変換できます。同時変換を終了するためには、カーソルを変数外の部分にもっていけばOK。

一点だけ注意があるとすれば、同時変換しようとした際にキーボードの入力モードが日本語になっているとうまくいきません。選択している変数は削除されてしまい、”Edit All in Scope” モードからも抜けてしまいます。こんなときは慌てずに “Ctrl-Z” (Undo) です。

ショートカットキーを使わない場合、変数の上にマウスポインタを持っていくと右側に三角マークが出てきますので、そこからメニューを出して”Edit All in Scope”を選びましょう。

Edit All in Scope (menu)


たかが変数名、されど変数名。数ヶ月後の自分を罠にはめないためにも(笑)、変数名には十分注意を払いたいものです。