【Swift5】NSExceptionの対処法
こんにちはYsです。元々、Web系の開発を行ってきましたが最近ではiOSの勉強を始めました。その際のエラーなどの原因・対処法を当ブログでまとめていきます。
事象としては、libc++abi.dylib: terminating with uncaught exception of type NSException
というエラーがログに出力されてアプリがクラッシュする自体です。
本記事では環境(バージョン)差によって違いが起きる可能性は低いですが念の為環境を残しておきます。
- Swift version 5.0.1
- Xcode Version 10.2.1
terminating with uncaught exception of type NSExceptionの解消法
結論から書くと、ViewContorller側とMainStroybord側でパーツが紐付いていないことが原因でした。
Main.storyboardの画面上で画面全体をクリックすると、黄色のアイコン(ViewController)と出てくるので『Ctrl + クリック』でViewControler側と紐付いているパーツの一覧が出てきます。
そこで、以下の画像の赤枠部分のように⚠️マークが出ていると、パーツがViewController側と紐付いていない証拠です。
使用する場合:再度紐付け 使用しない場合:削除
削除したい場合は、上記画像の「×」の部分をクリックすると紐付け設定を解除することが可能です。
おまけ: Xcodeでよくありがちなミス
僕のような初心者だと、パーツの紐付け部分を削除せず、コーディング部分だけ削除してしまうためパーツの紐付けが2重になってしまう事象がありがちです。
以下の画像だと、コーディング部分のみ削除して、重複してパーツの紐付けを行なっているパターンです。下記のパターンでももちろんエラーになります。
パーツを選択した後に、赤枠で囲ってある➡︎マークで紐付いてるかどうか確認することが出来ます。不要な紐付けは上記と同じ通りで「×」マークをクリックすれば削除することが可能です。
まとめ
XcodeとSwiftでの開発はまだ慣れていないので、初心者にありがちなミスに直面しました。まだまだ写経に近い開発なので細かいミスなどが出てきませんが、次第に詰まった開発になってくると思います。
当ブログではプログラミング系の記事(主にWeb系)を始め、オタク系の記事を書いているので他の記事でも参考になれば嬉しいです。