文系卒のWebエンジニアの成長と備忘録
エンジニア経験を生かして発信するメディアサイト

【Swift5】NSExceptionの対処法

mistake

こんにちは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の解消法

AppDelegate_swift

結論から書くと、ViewContorller側とMainStroybord側でパーツが紐付いていないことが原因でした。

Main.storyboardの画面上で画面全体をクリックすると、黄色のアイコン(ViewController)と出てくるので『Ctrl + クリック』でViewControler側と紐付いているパーツの一覧が出てきます。

そこで、以下の画像の赤枠部分のように⚠️マークが出ていると、パーツがViewController側と紐付いていない証拠です。

xcodeのエラー

使用する場合:再度紐付け
使用しない場合:削除

削除したい場合は、上記画像の「×」の部分をクリックすると紐付け設定を解除することが可能です。

おまけ: Xcodeでよくありがちなミス

僕のような初心者だと、パーツの紐付け部分を削除せず、コーディング部分だけ削除してしまうためパーツの紐付けが2重になってしまう事象がありがちです。

以下の画像だと、コーディング部分のみ削除して、重複してパーツの紐付けを行なっているパターンです。下記のパターンでももちろんエラーになります。

Main_storyboard_エラー

パーツを選択した後に、赤枠で囲ってある➡︎マークで紐付いてるかどうか確認することが出来ます。不要な紐付けは上記と同じ通りで「×」マークをクリックすれば削除することが可能です。

まとめ

XcodeとSwiftでの開発はまだ慣れていないので、初心者にありがちなミスに直面しました。まだまだ写経に近い開発なので細かいミスなどが出てきませんが、次第に詰まった開発になってくると思います。

当ブログではプログラミング系の記事(主にWeb系)を始め、オタク系の記事を書いているので他の記事でも参考になれば嬉しいです。

 

\記事のシェアをお願いします!/