xib
備忘録
Swift

[Swift] loadNibNamedの"(not yet loaded)"エラーについて

More than 1 year has passed since last update.

はじめに

鶏並みの記憶力の自分用備忘録です。
loadNibNamedの"(not yet loaded)"エラーの発生ケースの一例とその解決方法について。

前提

Xcode8.3.1

発生するエラー

Swiftでxibをコード上からロードしようとしたところ、下記エラーが発生することがある。

Terminating app due to uncaught exception 'NSInternalInconsistencyException', 
reason: 'Could not load NIB in bundle: 'NSBundle <**********************.bundle> 
(not yet loaded)' with name 'TestView''

ケース1

発生状況

CocoaPodsで管理しているframeworkの中にxibを新規追加して、それを呼び出して使いたかった。

  1. Pod側で管理しているframeworkにTestView.xibファイルを新規作成する
  2. xibのFile's Ownerにクラスなどを紐づける
  3. コード上にLoadNibNamed("TestView", owner: self, options:nil)を追記し、アプリを起動
  4. 上記エラーが発生する

原因&解決方法

pod install忘れ。
CocoaPodsで管理しているframeworkにxibを新規追加した後にpod installをしてなかったので、該当Nibないよってエラーが出るのは当りまえでした。

ケース2

発生状況

  1. Pod側で管理しているframeworkにTestView.xibファイルを新規作成する
  2. xibのFile's Ownerにクラスなどを紐づける
  3. pod installを叩き、新規追加したxibをインストール
  4. コード上にLoadNibNamed("TestVie", owner: self, options:nil)を追記し、アプリを起動
  5. 上記エラーが発生する

原因&解決方法

ロードするxib名の指定ミス。"TestView"と指定するべきところを、"TestVie"としていた。

終わりに

しょうもないようなエラーですが、基本アホなので忘れた頃にぶち当たって時間食ったりします。