1. HOME
  2. ブログ
  3. IT技術
  4. 【Swift】「Thread 1: signal SIGABRT」エラーが出るときの原因

【Swift】「Thread 1: signal SIGABRT」エラーが出るときの原因

「Thread 1: signal SIGABRT」は簡単に解決できます!

Swift(スウィフト)の基本も身に付き、エラーも解決できるようになってきた頃に現れるのが「Thread 1: signal SIGABRT」エラーです。

大体のエラーは、横に原因が書いてあるので、書いてある通りにコードを修正すれば解決できます。

Thread 1: signal SIGABRT」は、これ以外何も書いておらず、一体何がいけないのかさっぱりですよね。

ですが、「Thread 1: signal SIGABRT」は、原因さえ分かれば簡単に解決できるんです!

今回は、「Thread 1: signal SIGABRT」エラーの発生原因の一つである、ストーリーボードの接続が正しく出来ていない場合について説明していきます。

「Thread 1: signal SIGABRT」とは?

このエラーが起こるのは、ほとんどの場合、ストーリーボードが正しく接続されていないときです。

ボタンをタップしたときや、ビルドして画面が反映される前などに強制終了してしまうことがよくあります。

このエラーが厄介なのは、原因が特定しづらいことで、今から解説する原因ではない可能性もあります。

解説するにあたり、プログラムは「シンプルな ToDo リストアプリ」を使用していきます。

アプリの内容は、右上のナビゲーションアイテムをタップすると、アラートが表示されて ToDo にリストを追加できるアプリです。

シンプルなプログラムですが、原因が同じであれば、応用が効くのでご安心ください。

【※注意※】
コードの例では、原因の部分だけを書いて説明していきますので、実際の処理の内容はここでは書きません。ご了承ください。

ビルドした瞬間に「Thread 1: signal SIGABRT」

初めに、ビルドした瞬間に「Thread 1: signal SIGABRT」エラーが出てくるパターンを解説していきます。

まずは、普通に実装していきましょう。

コードその1

次のコードをビルドします。

ビルドした結果

成功しました。

コードその2

次に、一番上の変数と @IBOutlet を入れ替えてみましょう。

ビルドを実行しましたが、 @IBOutlettablView になっているため、ビルドできませんでした。

コードその3

次のように、 tablView を  tableView に修正し、ビルドしてみましょう。

ビルドした結果

「Thread 1: signal SIGABRT」エラーが出てしまいました!

なぜでしょう?

実は、間違えた name で一度ビルドしてしまうと、コード上で修正するだけではビルドできず、ストーリーボード上でも接続を切らなければいけません

実際に確かめてみると、接続が複数になっていることが確認できます。

そのため、ストーリーボード上の接続を全て切ってから、新たに正しい name で接続すれば、ビルドは成功するでしょう

まだわからない人もいるかと思いますので、次は画像と共に解説していきます。

上記の説明を画像で解説

Thread 1: signal SIGABRT」エラーが出ている状態では、ストーリーボード上の接続は、次のようになります。

「Referencing Outlets」で間違えた方の name を削除します。

これでビルドすると、「Thread 1: signal SIGABRT」エラーが出ることなく、立ち上げることができます。

ボタンを押したら「Thread 1: signal SIGABRT」

次は、ボタンを押した瞬間に「Thread 1: signal SIGABRT」エラーが出る原因について説明します。

まず、普通にボタンを押してみます。

ビルドした結果

アラートダイアログが表示されたので成功です。

name を変更したコード

次は、 AddButtonaddButton へと変更したコードです。

このコードでは、「Thread 1: signal SIGABRT」エラーが出ました。

@IBActionname をコード上で、勝手に編集してしまったのが理由です

name を編集したい場合は、一度、ストーリーボード上からも削除しなければいけません。

最後に

どうでしたか?

Thread 1: signal SIGABRT」エラーが出てしまった場合は、どこでエラーが出ているのかを確かめ、その部分の接続を一旦切ってみると良いでしょう。

それでも解決できない場合は、理由が書いていますので、デバックエリアを確認してみましょう。

解説した原因以外にも、「Thread 1: signal SIGABRT」が出る原因はあるそうですが、私は遭遇したことがありません。

最後に、今回のまとめです。

  1. 「Thread 1: signal SIGABRT」が出たらまずは接続を疑う。
  2. 接続の name を変える場合は、一旦接続からやり直す。

この2つを気をつけておけば、大丈夫です。

ぜひ活用してみてください!

ライトコードよりお知らせ

にゃんこ師匠にゃんこ師匠
システム開発のご相談やご依頼はこちら
ミツオカミツオカ
ライトコードの採用募集はこちら
にゃんこ師匠にゃんこ師匠
社長と一杯飲みながらお話してみたい方はこちら
ミツオカミツオカ
フリーランスエンジニア様の募集はこちら
にゃんこ師匠にゃんこ師匠
その他、お問い合わせはこちら
ミツオカミツオカ
   
お気軽にお問い合わせください!せっかくなので、別の記事もぜひ読んでいって下さいね!

一緒に働いてくれる仲間を募集しております!

ライトコードでは、仲間を募集しております!

当社のモットーは「好きなことを仕事にするエンジニア集団」「エンジニアによるエンジニアのための会社」。エンジニアであるあなたの「やってみたいこと」を全力で応援する会社です。

また、ライトコードは現在、急成長中!だからこそ、あなたにお任せしたいやりがいのあるお仕事は沢山あります。「コアメンバー」として活躍してくれる、あなたからのご応募をお待ちしております!

なお、ご応募の前に、「話しだけ聞いてみたい」「社内の雰囲気を知りたい」という方はこちらをご覧ください。

ライトコードでは一緒に働いていただける方を募集しております!

採用情報はこちら

書いた人はこんな人

ライトコードメディア編集部
ライトコードメディア編集部
「好きなことを仕事にするエンジニア集団」の(株)ライトコードのメディア編集部が書いている記事です。

関連記事