環境
以下の環境でのiOSアプリ作成
- Xcode7
- Swift
問題内容
Xcodeでビルドしたら下記メッセージがコンソールに出力された。
Unknown class xxxxx in Interface Builder file.
「xxxxx」は、自分が追加したカスタムクラス名が入る。
自分は、ViewControllerのサブクラスで発生していた。
解決
ググるとこのケースは結構あるらしい。
原因は数パターンあるらしいが、色々試しても直らず途方にくれていたが、このサイトの内容で解消できた。感謝。
http://yoropipi.hatenablog.com/entry/2016/02/15/231430
原因
上記画像は、エラーが発生しているViewControllerを選択したときのインスペクタである。
カスタムクラスのModule名が「None」になっている。
解決方法
Moduleのセレクトボックスを選択してEnterを押下する。
下記画像のように「Current - yyyyy」と表示が変化すればOK。
原因・解決方法いろいろ
私が遭遇したパターンの情報に辿り着くまで時間がかかったので、ここでまとめておく。
パターン1:ビルドのターゲットになっていない。
「File -> New -> ...」のようにXcodeの機能を使用せずにドラッグ & ドロップすると、プロジェクトのビルド対象にならないらしい。
プロジェクトを選択し、「Build Phases」のCompile Sourcesに対象のファイルが入っていない場合には、追加すればOK。
パターン2:storyboardの設定不備
カスタムクラスの場合、特に注意する。
本ケースでは、Moduleの設定がおかしかったが、Classの設定がおかしいケースもあると思う。
パターン3:原因不明
- 「Shift + Command + K」でビルド生成物をクリアする(全て1からコンパイルされる)。
- Xcodeを再起動する。
- シミュレータからアプリを削除して、再度コンパイル→実行する。
- Macを再起動する。