Xcode 4 移行ガイド:テキストの置換とリファクタリング
(Apple 社公式文書の Sazameki and Satoshi Numata, Ph.D. 私訳版)

Xcode 3 と同じように、Xcode 4 でもプロジェクト全体を通してテキスト置換を行うなどのグローバルな変更をサポートしています。これには、Objective-C 2.0 用のコードへの変換や、スーパークラスの抽出などの機能も含まれます。これらの機能は、検索と置換、そしてリファクタリングと呼ばれます。

検索ナビゲーターによるテキスト置換

ソースファイル内のテキストを置換するには、検索ナビゲーターに表示されるポップアップメニューから「Replace」を選択します(図 6-1)。一番上のテキストフィールドに検索したいテキストを入力して return キーを押し、その下のテキストフィールドに置換したいテキストを入力します(図 6-2)。カーソルが上の方のテキストフィールドにある場合、return キーを押さないと検索が始まらないことに注意してください。置換テキストを入力しても置換結果が表示されない場合、カーソルを上の方のテキストフィールドにもっていって return キーを押してください。ワークスペースのアクティビティー・ビューアのツールバーには、検索の実行状況が表示されます(図 6-3)。

図 6-1  検索/結果のポップアップメニュー
図 6-2  検索/置換の結果
図 6-3  検索中のアクティビティー・ビューア

検索で見つかった結果をすべて置換するには、「Replace All」ボタンをクリックしてください。ひとつの項目だけを置換するには、その項目を選択して、「Replace」ボタンをクリックします。見つかった一部の結果だけを置換するには、shift キー+クリックか command キー+クリックで複数の項目を選択してから、「Replace」ボタンを押します。

デフォルトでは、Xcode は変更を行う前にプロジェクトのスナップショットを作成します。“スナップショットはワークスペースの現在のバージョンのコピーを保存する” を参照してください。この動作を変更するには、メニューの「File」-「Project Settings」で表示されるダイアログから、「Snapshots」ペインを選択して使ってください。「Replace」ボタンを押す前に「File」-「Manual Snapshot」を選択することで、手動でスナップショットを作成することもできます。

テキスト置換のプレビュー

テキスト置換を実行する前に変更のある箇所を見たいときには、置換のテキストボックスの下にある「Preview」ボタンをクリックします(Figure 6-2)。図 6-4 なプレビューダイアログが開きます。

図 6-4  置換のプレビュー

置換のために見つかった個々の検索結果を選択するには、このダイアログの左側のペインに表示されている各項目のチェックボックスをクリックするか、右側のペインの中央に表示されるスライドスイッチをクリックします。左側のペインで shift キー+クリックまたは command キー+クリックを使うことで、複数の項目をマークして、スペースバーを押してそれらの項目を選択できます。すべての検索された項目を置き換える場合には、キャンセルボタンを押してから、「Replace All」ボタンをクリックしてください。

将来の管理に向けたコードのリファクタリング

リファクタリング作業とは、振る舞いを変えることなくソースコードの構造を改良することです。これを行うことでコードが管理しやすくなり、またさらにコードが変更しやすくなります。Xcode 4 におけるリファクタリング機能は、Xcode 3 とまったく同じです。まずはリファクタリングしたいソースコードの箇所を選択してから、メニューの「Edit」-「Refactor」以下の項目を選択するか、ソースエディターのショートカットメニューで「Refactor」以下の項目を選択して、リファクタリング操作(変形 (transformation) とも呼ばれます)を実行します。このメニューで選択可能な項目だけがリファクタリング可能です。

テキストを選択してリファクタリング操作も選択したら、Xcode は必要に応じてシンボル名やオプションを設定するためのダイアログを表示します。

リファクタリングの変更を適用する前に、変更箇所をプレビューして、変更を適用するファイルを選択できる機会があります(図 6-5)。ナビゲーター・ペインでファイルのチェックを外すことで、それらのファイルをリファクタリング操作の対象から外すことができます。またプレビューダイアログでソースコードを直接編集することもできます。このような編集はプレビューに表示され、リファクタリング操作に含めて処理することができます。

図 6-5  リファクタリングのプレビュー・ダイアログ

リファクタリング機能では、次のことができます。

なおリファクタリング機能は、C言語か Objective-C のファイルでしか使えません。

更新されたファイルを保存する前であれば、メニューの「Edit」-「Undo」を使ってファイル単位でのリファクタリング操作の取り消しを行うことができます。プロジェクトを保存せずにとじて、元のファイルに戻すこともできます。