はじめに
鶏並みの記憶力の自分用備忘録です。
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を新規追加して、それを呼び出して使いたかった。
- Pod側で管理しているframeworkにTestView.xibファイルを新規作成する
- xibのFile's Ownerにクラスなどを紐づける
- コード上にLoadNibNamed("TestView", owner: self, options:nil)を追記し、アプリを起動
- 上記エラーが発生する
原因&解決方法
pod install忘れ。
CocoaPodsで管理しているframeworkにxibを新規追加した後にpod installをしてなかったので、該当Nibないよってエラーが出るのは当りまえでした。
ケース2
発生状況
- Pod側で管理しているframeworkにTestView.xibファイルを新規作成する
- xibのFile's Ownerにクラスなどを紐づける
- pod installを叩き、新規追加したxibをインストール
- コード上にLoadNibNamed("TestVie", owner: self, options:nil)を追記し、アプリを起動
- 上記エラーが発生する
原因&解決方法
ロードするxib名の指定ミス。"TestView"と指定するべきところを、"TestVie"としていた。
終わりに
しょうもないようなエラーですが、基本アホなので忘れた頃にぶち当たって時間食ったりします。