Xcodeでファイルの名前を変更またはリファクタリングする


81

クラスファイルの名前を変更/リファクタリングして、ディスク上の実際のファイルの名前を変更することは可能ですか?もしそうなら、どうすればこれを行うことができますか?

回答:


170

ファイルの名前を変更する最も安全な方法は、Xcodeの「リファクタリング」コマンドを使用してクラス名をリファクタリングすることです。このコマンドを使用すると、ファイルまたはクラス(NIBを含む)を参照する場所でもコードが更新されます。

interface(.h)ファイルのクラス名を右クリックしてを選択するRefactor->Renameと、Xcodeがプロセスをガイドし、変更をコミットする前にプレビューできるようにします。

詳細:

(後の@interface)クラス名を右クリックし、[リファクタリング]-> [名前の変更]を選択します。たとえばViewController、次のコードを右クリックします。

@interface ViewController : UIViewController

ここに画像の説明を入力してください

クラスの新しい名前を入力します。

ここに画像の説明を入力してください

Xcodeを使用すると、コミットする前に変更を確認できます。

ここに画像の説明を入力してください

クラス名を強調表示してXcodeのEdit->Refactorメニューを使用したり、必要に応じてキーボードショートカットにマップしたりすることもできます。

コードに影響を与えずに実際にファイルの名前を変更する場合は、[ナビゲーター]ペイン(左側のペイン)で名前をクリックし、しばらく待ってからもう一度クリックします。名前が強調表示され、新しい名前を入力できます。ナビゲーターから削除し、Finderでファイルの名前を変更して、プロジェクトに再度追加することもできます。


1
このアプローチは、他のファイルまたはXIBファイルに保持されているクラスインスタンスの名前を変更するため、最適です。
Kendall Helmstetter Gelner 2010

4.3にアップグレードしたので、これは機能していないようです。ヘッダー(.h)ファイルで、XCodeは、ファイルがターゲットに追加されていないことを通知します。ヘッダーファイルであるため、ターゲットに追加されるべきではありません。.mファイルを試してみると、シンボル(クラス、関数など)ではないと文句が言われます
Michael

@Michaelテストプロジェクトで試しましたか?4.3をインストールしていませんが、4.2では問題なく動作しているようです(試してみました)。
ネヴァンキング2012

オープンソースの場合、関連するソースコードはどこにあるのか誰か知っていますか?彼らはリファクタリング機能を実装するためにclangツールを使用したと思います。そのような機能のためのいくつかの良いインターフェースがありますが、私はソースコードを見つけていません。
BergP 2014年

残念ながら、これによりXcodeがクラッシュします。私はヨセミテベータを実行しているので、それが理由かもしれません。うまくいけば。
CGTheLegend 2014

51

Xcode 4.2.1で動作します:プロジェクトナビゲーター(デフォルトの左側のパネル)でファイルを選択し、[タブ]を押します


ありがとう。リファクタリング->名前の変更はC ++ファイルでは機能しませんでした。これはうまくいきました。
blueVoid 2013年

4
この答えは、現在の答えよりも受け入れられるに値すると思います。+1
モーガンワイルド2013年

また、XCodeの11で動作します
ケシャアントノフ

3

デフォルトでは、ファイルナビゲーター(左側のアウトラインビュー)でファイルの名前を変更するか、インスペクターを使用すると、Xcodeはファイルの名前を変更します。


こんにちは。プロトコル(SideToolBarDelegate.h)の名前をToolBarDelegate.hに変更したいのですが、xcodeから次のように言われます。 。名前を変更するにはどうすればよいですか?ありがとう
サミール2013年

1つのファイル(SideToolBarDelegate.h)で置き換えるだけですが、リファクタリング関数のように、すべてのプロジェクトでこの名前を置き換えたいと思います。
サミール2013年

shift-cmd-F、「検索して置換」するための小さなオプションをポップダウンします。...検索と置換
bbum

関連する名前で名前を変更することを忘れないでください:Body、BodiesViewController、interactingBodies –厳密な「検索と置換」では2番目または3番目をキャッチしません。
willc2 2013

2

一方向:名前を変更するファイルを選択して、を押しTabます。私は主にこれを使用しますが、Xcodeが名前の変更に失敗することがあります。だから私はそれから

別の方法:ファイルを選択します。インスペクターエリア(右上隅)を開きます。次に、ファイルインスペクターを開きます。そこには、ファイルの名前を編集できる名前フィールドがあります。(スクリーンショットを参照)。

ここに画像の説明を入力してください


1

Xcode 11.6、「foo.cpp」の名前を「bar.cpp」に変更しようとすると、上記の方法を使用しても機能しません。REFACTORオプションはグレー表示されています。代わりに、次のようにします。

  • プロジェクトブラウザで、名前を変更するファイルを見つけます。例:foo.cpp
  • 右(2本指)foo.cppをクリックします
  • 「ファイルインスペクターに表示」を選択します

画面の右側に、ファイルインスペクターが表示されます。

  • [名前]フィールドに新しいファイル名を入力し、Enterキーを押します

0

ファイルの名前を手動で変更し、[検索と置換]を使用してクラス名の名前を変更した場合は、ファイルがターゲットのビルドフェーズで[ソースのコンパイル]に追加されていることを確認してください。


0

[リファクタリング]-> [名前の変更]を選択しますnevankingの答えはXcodeバージョン7.0ベータ(7A120f)でも正常に機能します


これは質問に対する答えを提供しません。著者に批評したり、説明を求めたりするには、投稿の下にコメントを残します。自分の投稿にいつでもコメントできます。十分な評判得られたら、どの投稿にもコメントできます。
Mayank Jain 2015

原因私は50の評判を持っていません。それが私が回答への回答を投稿するものです。
カルロスチャン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.