web-dev-qa-db-ja.com

バンドルでNIBをロードできませんでした: 'NSBundle'

以下にリストされているエラーは何ですか?

2011-02-23 21:24:12.218成功[7238:207] *キャッチされない例外 'NSInternalInconsistencyException'によりアプリを終了します、理由: 'バンドルにNIBをロードできませんでした:' NSBundle </ Users/jimkillen12/Library/Application Support/iPhone Simulator/4.2/Applications/BAA5E0E7-AF12-4301-A4F8-1B9797C9E82D/Success.app>(loaded) 'with name' MainWindow-iPad ''

19
James K.

NIBファイルの1つがプロジェクトにありません。必要なNIBファイルを追加してください:

ビルド段階

  1. バンドルリソースのコピーを展開
  2. 下部の+をクリックします
  3. 必要なNIBファイルを追加します。

Shift+Cmd+Kでビルドをクリーンアップしてから実行します。

P.S。initWithNibName:@"ViewNameController"を呼び出すときに、NIBファイルの正確なスペルを使用も確認してください

おそらく小文字を使用して呼び出しでNIBに名前を付けたか、または不要な拡張子.xibを含めることもできます。

34
Baig

おそらく、あなたは呼び出しでNIBに小文字で名前を付けました。この場合、シミュレータは正常に動作しますが、iPhoneデバイスは実行時にエラーを返します。

例えば、

DetailViewController *detailViewController = [[DetailViewController alloc]
            initWithNibName:@"detailViewController" bundle:nil];

失敗します。次のように変更する必要があります。

DetailViewController *detailViewController = [[DetailViewController alloc]
            initWithNibName:@"DetailViewController" bundle:nil];
12
Denis Kutlubaev

ビルド設定で、アーキテクチャを追加します= >> armv6およびarmv7

これを使用してエラーを削除しました

3
Farukh Mushtaq

私は同じ問題を抱えていますが、それは私が拡張子.xibを書いたためであり、それは必要ではありません

token_view = [[GetToken alloc] initWithNibName:@"GetToken_iPad.xib" bundle:nil];

の代わりに

token_view = [[GetToken alloc] initWithNibName:@"GetToken_iPad" bundle:nil];
2
Juan Vaello

私の場合は次でした:

「?????? Ipad」という名前のコードXIBをロードしましたが、XIBファイル名は「?????? IPad」でした

1
ChapayStack

Nib/xibファイルが対応するターゲットメンバーシップに含まれていることを確認してください。

1
Nomar

NIBに関する警告はありますか?これは通常、NIBファイルのエラー(不正なタイプのNIBなど)に対して行われます。

ファイルを右クリックし、[情報を見る]をクリックして、タイプが期待どおりであることを確認します。

1
Saboosh

手順に従っても同じ問題があります。

1.プロジェクトを別の場所にコピーします。

2.NIBファイルをコピーするどのクラッシュアプ​​リ。

3.名前を変更するだけ

例古いファイルDemo.xibをコピーして名前を変更するDemoNew.xib

私のコードは以下です

古いコード

Demo *controller = [[Demo alloc]initWithNibName:@"Demo" bundle:nil];

名前を変えるだけ

Demo *controller = [[Demo alloc]initWithNibName:@"DemoNew" bundle:nil];

それは私のために働いています。

1

プロジェクトにファイルMainWindow.xibが存在することを確認してください。そうでない場合は、MainWindow.xibという名前の新しいインターフェースファイルを追加します。

0
user968597

その他の考えられる問題:iOS 5でBase Localizationを使用しています(注意、iOSシミュレーターでは機能しますが、デバイスでは機能しません)。 iOS 6以降でのみサポートされます。

詳細については、以下を参照してください。 バンドル基本国際化でnibをロードできませんでした

0
MonsieurDart

Nibから取得したコレクションビューでcollectionViewセルをロードしようとすると、次のエラーが表示される場合があります。 NSBundle "nibファイルからコレクションビューをロードする場合、ストーリーボードとは異なり、nibでコレクションビューセルを宣言するオプションはありません。正しい方法は、新しいnibを使用して新しいカスタムセルを作成し、それをコレクションビューにロードすることです。 :新しいカスタムコレクションセルのペン先を登録することを忘れないでください。

0
Shruti

たとえば、UIViewControllerクラス名をTextPickerとして使用している場合、Bellowコードのように使用する必要があります

  let bundle = Bundle(for: TextPicker.self)
  super.init(nibName: "TextPicker" , bundle: bundle)

フレームワークとして他のプロジェクトのXibでTableViewを使用している場合

  tableView.register(UINib.init(nibName: "TextPickerCell", bundle: bundle), forCellReuseIdentifier: "TextPickerCell")

let bundle = Bundle(for:TextPicker.self)

0
Rudresh