概要
プロジェクト内のクラス名などを一斉に変更する際、今まではRefactor>Rename
を使っていたのですが、偶にエラーが出て置換できない例が出てきたり、何故か置換対象として表示されないことがあります。
一般的な対処法であるDerived Data
の削除などをしても上手くいかず、違う方法を調べたらXcodeの機能で入力したキーワードでプロジェクト内を検索し、一斉置換する方法があったので方法を残しておきます。
詳細
以下の画像のように左上のナビゲータバーの虫眼鏡アイコンを選択し、検索機能に遷移します。
Find>Text>Containing
の内、Find
をクリックすると、選択肢が表示されるため、Replace
を選択します。
上の入力フィールドに検索したい値を、下の入力フィールドに置換したい値を入れ、上から順に置換したい場合はReplace
を、一斉置換したい場合にはReplace All
をクリックします。
実行時にどの要素の置換に成功したかが表示されます。
下記の画像のように、置換に成功した場合には緑色のアイコンで表示され、失敗した場合には赤色のアイコンで表示されます。
再度同じ検索条件で検索してみると、確かに置換に失敗した箇所のみが表示されています。
また、プロジェクト情報に関しては変更されると支障が出やすい情報であるためか、一斉置換はできないようです。
Refactor>Rename
が上手く動作しない時にはこちらの方法を試してみるのもありかもしれません。