2012-04-01 7 views
0

xcodeリファクタを使用してViewControllerの名前を変更しました。 .hファイルのコントローラー名を強調表示してから、「編集」>「リファクタリング」>「名前の変更」を使用しました。 .xibファイルの名前を含むすべてが正しく変更されました。しかし、initWithNibNameでペン先をロードすると、新しい名前は認識されません。私はまだコントローラの古い名前の文字列値を提供する必要があります。xcodeリファクタを使用してNIB名を変更しない

XMLエディタを使用して.xibファイル内の古い名前を検索しようとしましたが、そこを変更したいと考えていました。運がない。

ペン先の名前を.xibファイルの新しいファイル名と一致するように変更する方法を知っている人はいますか?

[IはXcodeの4.2を使用している]

+0

プロジェクトのクリーニングを試しましたか? – Sven

答えて

1

Xcodeは(例えばinitWithNibName:@"FooViewController withBundle:nil]用)リテラル文字列を使用initWithNibNameへの呼び出しを変更しないであろう。これは私がこのようにコード化する傾向がある理由の1つです:initWithNibName:NSStringFromClass([FooViewController class]) withBundle:nilしたがって、リテラル文字列を使用するすべての呼び出しをコードで調べます。

クイック編集:しかし、すでに手動で変更している可能性があります。その場合は、クイックプロジェクトをアンインストールしてクリーンアップしてください。

+0

NSStringFromClassを手動で呼び出す必要はありません。あなたのクラスと同じ名前のnibをロードしたいなら、nib名に 'nil'を使うことができます。 – Sven

+0

はい、あなたもこれを行うことができますが、私のためにはうまくいきません。なぜか分かりません>< – borrrden

+0

あなたのクイック編集は私の問題の根源になります。文字列リテラルを新しいnib名に変更すると、initWithNameに失敗します。私は再インストールし、無駄にきれいにしました。古い名前がまだペン先に使用されていることを示しています。その古い名前が保存されている場所は謎です。しかし、私はSvenのアドバイスを受けて、initWithNibNameのnib名にnilを使用しました。うまくいきます。私はあなたがそれを行うことができたのか分からなかった!だから、古い名前はまだどこかに埋められていますが、私のコードには表示されないので、私はそれについて心配しません。 – lp1756

関連する問題