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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Xcode

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

Swift

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

Q&A

1回答

312閲覧

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

dorp6140

総合スコア6

Xcode

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

Swift

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

0グッド

0クリップ

投稿2018/04/21 07:03

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

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

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

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

該当のソースコード

Swift

1class AppDelegate: UIResponder, UIApplicationDelegate { 2 3 4Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIView 0x7fa86b50d300> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key answer1.' 5*** First throw call stack: 6 7

試したこと

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

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

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

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

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

NSUnknownKeyExceptionが出た時の回避方法

投稿2018/04/21 11:40

coco_bauer

総合スコア6915

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

coco_bauer

2018/04/21 11:43

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

2018/04/22 04:14

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

2018/04/22 12:53

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

2018/05/02 11: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 を押しながら結んであります。他に必要になりそうなとこがありましたら幸いです。無知ですいません
hameji

2018/06/02 15:21 編集

まだ解決してないでしょうか? エラーからすると、tapAnswer1button周りに問題ありですね。 Storyboardで再びOutletやActionの接続が合っているか確認ください。 過去に間違えたものも残ってたりする場合があり、 それが落ちる原因のこともあります。 助けになれば幸いです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問