質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.52%

  • Swift

    7222questions

    Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

  • Xcode

    4086questions

    Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

buildしようとするとThread 1: signal SIGABRTと出てきて実行出来ません!助けてください

受付中

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 243

dorp6140

score 2

 Thread 1: signal SIGABRTを無くしたいです

Xcodeで本に載ってる練習アプリを作っているのですが、実行しようとするとエラーが起きて実行してくれません

 発生している問題・エラーメッセージ

エラーメッセージ
Thread 1: signal SIGABRT

 該当のソースコード

class AppDelegate: UIResponder, UIApplicationDelegate {


Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIView 0x7fa86b50d300> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key answer1.'
*** First throw call stack:

 試したこと

ここに問題に対して試したことを記載してください。

 補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

+1

下記リンクの記事が参考になるかと思います。

NSUnknownKeyExceptionが出た時の回避方法

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/04/21 20:43

    補足: 最終的にはSIGABORT(異常停止)で止まっているのですが、その原因となったのは'NSUnknownKeyException'という例外が補足されなかった(プログラムが面倒をみないので、アプリを止めるしかなかった)からです。

    キャンセル

  • 2018/04/22 13:14

    回答ありがとうございます!リンク先にあることを真似て見ました!そしたら今まで進めなかったところまで進めました!ですがTerminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIView tapAnswer1button:]: unrecognized selector sent to instance 0x7f80df40fee0'と出てきたのですがこれはUIView tapAnswer1buttonの部分がどう変えればいいか分かりません。どのようにするのが良いでしょうか?

    キャンセル

  • 2018/04/22 21:53

    申し訳ありませんが、コードが全く示されていないので見当もつきません。UIView tapAnswer1buttonの部分について質問するためには、UIView tapAnswer1buttonの部分を含んだコードが必要だとは思いませんか?

    キャンセル

  • 2018/05/02 20:18

    申し訳ありませんでした。
    import UIKit
    import AudioToolbox

    class QuestionViewController: UIViewController {

    var questionData: QuestionData!

    @IBOutlet weak var questionNoLabel: UILabel! //問題文ラベル

    @IBOutlet weak var questiontextLabel: UITextView! //問題文テキストビュー

    @IBOutlet weak var answer1: UIButton! //選択肢1ボタン
    @IBOutlet weak var answer2: UIButton! //選択肢2ボタン
    @IBOutlet weak var answer3: UIButton! //選択肢3ボタン
    @IBOutlet weak var answer4: UIButton! //選択肢4ボタン

    @IBOutlet weak var CorrectImageView: UIImageView! //正解のイメージビュー

    @IBOutlet weak var IncorrectImageView: UIImageView! //不正解のイメージビュー


    override func viewDidLoad() {
    super.viewDidLoad()

    questionNoLabel.text = "Q.\(questionData.questionNo)"

    questiontextLabel.text = questionData.question

    answer1.setTitle(questionData.answer1,for :UIControlState.normal)
    answer2.setTitle(questionData.answer2,for :UIControlState.normal)
    answer3.setTitle(questionData.answer3,for :UIControlState.normal)
    answer4.setTitle(questionData.answer4,for :UIControlState.normal)


    // Do any additional setup after loading the view.
    }

    override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
    }

    //選択肢1をタップ
    @IBAction func tapAnswer1button(_ sender: Any) {
    questionData.userChoiceAnswerNumber = 1 //選択した答えの番号を保存する
    goNextQuestionWithAnimation() //次の問題に進む
    }

    //選択肢2をタップ
    @IBAction func tapAnswer2button(_ sender: Any) {
    questionData.userChoiceAnswerNumber = 2 //選択した答えの番号を保存する
    goNextQuestionWithAnimation() //次の問題に進む
    }

    //選択肢3をタップ
    @IBAction func tapAnswer3button(_ sender: Any) {
    questionData.userChoiceAnswerNumber = 3 //選択した答えの番号を保存する
    goNextQuestionWithAnimation() //次の問題に進む

    }


    //選択肢4をタップ
    @IBAction func tap4Answerbutton(_ sender: Any) {
    questionData.userChoiceAnswerNumber = 4 //選択した答えの番号を保存する
    goNextQuestionWithAnimation() //次の問題に進む
    }


    //次の問題にアニメーション付きで進む
    func goNextQuestionWithAnimation(){
    //正解しているか判定する
    if questionData.isCorrect(){
    //正解のアニメーションを再生しながら次の問題に遷移する
    goNextQuestionWithCorrectAnimation()
    }else{
    //不正解のアニメーションを再生しながら次の問題に遷移する
    goNextQuestionWithIncorrectAnimation()
    }
    }

    //次の問題に正解のアニメーション付きで遷移する
    func goNextQuestionWithCorrectAnimation(){
    //正解を伝える音を鳴らす
    AudioServicesPlayAlertSound(1025)

    //アニメーション
    UIView.animate(withDuration: 2.0, animations: {
    //アルファ値を1.0に変化させる(初期値はstoryboardで0.0に設定済み)
    self.CorrectImageView.alpha = 1.0
    }){(Bool) in self.goNextQuestion()//アニメーション完了時に次の問題に進む
    }
    }

    //次の問題に不正解のアニメーション付きで遷移する
    func goNextQuestionWithIncorrectAnimation(){
    //不正解を伝える音を鳴らす
    AudioServicesPlayAlertSound(1006)
    //アニメーション
    UIView.animate(withDuration:2.0,animations:{
    //アルファ値を1.0に変化させる(初期値はstoryboardで0.0に設定済み
    self.IncorrectImageView.alpha = 1.0
    }){(Bool)in
    self.goNextQuestion() //アニメーション完了後に次の問題に進む
    }
    }

    //次の問題へ遷移する
    func goNextQuestion(){
    //問題文の取り出し
    guard let nextQuestion = QuestionDataManager.sharedInstance.nextQuestion() else{
    //問題文がなければ結果画面に遷移する
    //storyboardのIdentifierに設定した値(result)を指定して
    //ViewControllerを生成する
    if let resultViewController = storyboard?.instantiateViewController(withIdentifier:"result")as?ResultViewController{
    //storyboardのsegueを利用しない明示的な画面遷移を処理
    present(resultViewController,animated: true, completion: nil)
    }
    return
    }

    //問題文がある場合は次の問題へ遷移する
    //storyboardのIdentifierに設定した値(question)を設定して
    //ViewControllerを生成する
    if let nextQuestionViewController =
    storyboard?.instantiateViewController(withIdentifier: "question")as?QuestionViewController{
    nextQuestionViewController.questionData = nextQuestion
    //storyboardのsegueを利用しない明示的処理
    present(nextQuestionViewController, animated: true, completion: nil)


    }

    }


    /*
    // MARK: - Navigation

    // In a storyboard-based application, you will often want to do a little preparation before navigation
    override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    // Get the new view controller using segue.destinationViewController.
    // Pass the selected object to the new view controller.
    }
    */

    }

    このような感じなのですが、storyboardとanswer1、tapAnswer1buttonの部分はcontrol を押しながら結んであります。他に必要になりそうなとこがありましたら幸いです。無知ですいません

    キャンセル

  • 2018/06/03 00:20 編集

    まだ解決してないでしょうか?
    エラーからすると、tapAnswer1button周りに問題ありですね。

    Storyboardで再びOutletやActionの接続が合っているか確認ください。
    過去に間違えたものも残ってたりする場合があり、
    それが落ちる原因のこともあります。

    助けになれば幸いです。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.52%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    Swift3 Xcode8 Thread 1: signal SIGABRT

    こんにちは。いつも有難うございます。 Table viewでArray内を表示させようとしているのですが、SIGABRT Errorが出ました。。iOS開発は始めたばかりでよくわ

  • 受付中

    Swift3 Xcode8 SIGABRT

    こんにちは。いつもありがとうございます。 NSUserDefaultを触っていた時にSIGABRTが出ました。 多分ArrayとStringの扱いをどこかで間違っていると思うの

  • 解決済

    signal SIGABRT

    import UIKit import CoreData class ViewController: UIViewController, UITableViewDataSourc

  • 解決済

    Thread 1:signal SIGABRTって何?

    import UIKit class ViewController: UIViewController, UIPickerViewDelegate, UIPickerViewDa

  • 解決済

    signal SIGABRT エラー

    保存コードについて 下記のようなコードで書いていて、signal SIGABRTのエラー時、よく関連付けが原因の時があるので確認したのですが、恐らくあっています。そのため調べて

  • 解決済

    UIImage型をprintでログに表示させる場合

    UIImage型の配列があり、その配列の中身の並び順を知るために、 printで表示させる場合、"0x1d02a34e0"このような英数字が表示されると思いますが、 目で見てわかる

  • 解決済

    RxCocoa の Driver <-> Signal の変換について

    現在 iOS アプリを MVVM on RxSwift で開発しています。 UILabel に表示するテキストなどには Driver UIButton のタップイベントなどには S

  • 解決済

    【Xcode,Swift】Buttonをタップしたら、Thread 1: signal SIGABR...

    swift4 xcode9 ボタンをタップしたら、突然Thread 1: signal SIGABRTが出ました。 全部のOutletとActionの紐付けを解除し、もう1度つ

同じタグがついた質問を見る

  • Swift

    7222questions

    Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

  • Xcode

    4086questions

    Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。