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

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

ただいまの
回答率

87.92%

Thread 1: signal SIGABRT エラーの対応

解決済

回答 1

投稿 編集

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

score 11

前提・実現したいこと

Xcodeでswiftを書いているのですが、複数の画面を作り、画面遷移させようとするとトップ→Aページは成功するが。
Aページ→Bページやトップ→Bページへの遷移時画面が固まりエラーになる。
かなり初心者ですので咀嚼してご教示いただけると幸いです。

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

2019-06-20 17:08:11.317438+0900 projects4[29808:2183954] * Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<projects4.DetailViewController2 0x7fb57850fae0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key testImage7.' * First throw call stack: ( 0 CoreFoundation 0x000000010d8866fb exceptionPreprocess + 331 1 libobjc.A.dylib 0x000000010bea0ac5 objc_exception_throw + 48 2 CoreFoundation 0x000000010d886269 -[NSException raise] + 9 3 Foundation 0x000000010b915562 -[NSObject(NSKeyValueCoding) setValue:forKey:] + 289 4 UIKitCore 0x000000010fb132d2 -[UIViewController setValue:forKey:] + 87 5 UIKitCore 0x000000010fda08fd -[UIRuntimeOutletConnection connect] + 109 6 CoreFoundation 0x000000010d872d41 -[NSArray makeObjectsPerformSelector:] + 305 7 UIKitCore 0x000000010fd9d643 -[UINib instantiateWithOwner:options:] + 1810 8 UIKitCore 0x000000010fb1a3af -[UIViewController _loadViewFromNibNamed:bundle:] + 382 9 UIKitCore 0x000000010fb1ad39 -[UIViewController loadView] + 177 10 UIKitCore 0x000000010fb1b048 -[UIViewController loadViewIfRequired] + 172 11 UIKitCore 0x000000010fb1b868 -[UIViewController view] + 27 12 UIKitCore 0x000000010fa430fc -[_UIFullscreenPresentationController _setPresentedViewController:] + 89 13 UIKitCore 0x000000010fa371f2 -[UIPresentationController initWithPresentedViewController:presentingViewController:] + 133 14 UIKitCore 0x000000010fb2e4ce -[UIViewController _presentViewController:withAnimationController:completion:] + 3700 15 UIKitCore 0x000000010fb3111b 63-[UIViewController _presentViewController:animated:completion:]_block_invoke + 98 16 UIKitCore 0x000000010fb31633 -[UIViewController _performCoordinatedPresentOrDismiss:animated:] + 511 17 UIKitCore 0x000000010fb31082 -[UIViewController _presentViewController:animated:completion:] + 172 18 UIKitCore 0x000000010fb312e0 -[UIViewController presentViewController:animated:completion:] + 150 19 UIKitCore 0x00000001102b1eae 74-[UIStoryboardPresentationSegueTemplate newDefaultPerformHandlerForSegue:]_block_invoke + 133 20 UIKitCore 0x00000001102b6b9f -[UIStoryboardSegueTemplate _performWithDestinationViewController:sender:] + 276 21 UIKitCore 0x00000001102b6a5d -[UIStoryboardSegueTemplate _perform:] + 82 22 UIKitCore 0x00000001102b6d1f -[UIStoryboardSegueTemplate perform:] + 157 23 UIKitCore 0x000000011011f204 -[UIApplication sendAction:to:from:forEvent:] + 83 24 UIKitCore 0x000000010fb74c19 -[UIControl sendAction:to:forEvent:] + 67 25 UIKitCore 0x000000010fb74f36 -[UIControl _sendActionsForEvents:withEvent:] + 450 26 UIKitCore 0x000000010fb73eec -[UIControl touchesEnded:withEvent:] + 583 27 UIKitCore 0x0000000110157eee -[UIWindow _sendTouchesForEvent:] + 2547 28 UIKitCore 0x00000001101595d2 -[UIWindow sendEvent:] + 4079 29 UIKitCore 0x0000000110137d16 -[UIApplication sendEvent:] + 356 30 UIKitCore 0x0000000110208293 dispatchPreprocessedEventFromEventQueue + 3232 31 UIKitCore 0x000000011020abb9 handleEventQueueInternal + 5911 32 CoreFoundation 0x000000010d7edbe1 CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION + 17 33 CoreFoundation 0x000000010d7ed463 CFRunLoopDoSources0 + 243 34 CoreFoundation 0x000000010d7e7b1f __CFRunLoopRun + 1231 35 CoreFoundation 0x000000010d7e7302 CFRunLoopRunSpecific + 626 36 GraphicsServices 0x000000011596c2fe GSEventRunModal + 65 37 UIKitCore 0x000000011011dba2 UIApplicationMain + 140 38 projects4 0x000000010b5bb3db main + 75 39 libdyld.dylib 0x000000010ec8e541 start + 1 ) libc++abi.dylib: terminating with uncaught exception of type NSException (lldb)

該当のソースコード

//
//  AppDelegate.swift
//  projects4
//
//  Created by jiraffe40035 on 2019/06/16.
//  Copyright © 2019 jiraffe40035. All rights reserved.
//
//@UIApplicationMain追加した
import UIKit
       @UIApplicationMain

class AppDelegate:UIResponder,UIApplicationDelegate {

    var window: UIWindow?


    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        return true
    }

    func applicationWillResignActive(_ application: UIApplication) {
        // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
        // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game.
    }

    func applicationDidEnterBackground(_ application: UIApplication) {
        // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
        // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
    }

    func applicationWillEnterForeground(_ application: UIApplication) {
        // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.
    }

    func applicationDidBecomeActive(_ application: UIApplication) {
        // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
    }

    func applicationWillTerminate(_ application: UIApplication) {
        // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}

}

DetailViewController2 のソースコード

//
// DetailViewController2.swift
// projects4
//
// Created by jiraffe40035 on 2019/06/17.
// Copyright © 2019 jiraffe40035. All rights reserved.
//

import UIKit

class DetailViewController2: UIViewController {

@IBOutlet weak var tappedButton: UIImageView!

override func prepare (for segue: UIStoryboardSegue,sender: Any?){
//遷移先のDetailViewController2を取得
let detavilViewController2 = segue.destination as! DetailViewController2
//タップされたボタンを要素を取得
_ = sender as! UIButton;
//ボタンタグを取得
let buttonTag = tappedButton.tag
//詳細画面に表示する画像名を生成
let detailImageName = "image" + String(buttonTag)
//詳細画面に画像名を渡す
detavilViewController2.imageName = detailImageName
}

@IBOutlet weak var detailImageView2: UIImageView!

//①追記
var imageName:String?

override func viewDidLoad() {
super.viewDidLoad()

//②更新
guard let myImageName = imageName else{
return
}

//myImageNameを用いて画像を指定
detailImageView2.image = UIImage (named:myImageName)
}
//追記
//detailImageView2.image = UIImage (named: “image7")

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

/*
// 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.destination.
// Pass the selected object to the new view controller.
}
*/

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

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

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

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

    クリップを取り消します

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

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

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

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

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

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

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

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

    質問の評価を下げる

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

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

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

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

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

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

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

    詳細な説明はこちら

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

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

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

質問への追記・修正、ベストアンサー選択の依頼

  • harago

    2019/06/20 21:08

    class AppDelegate:UIResponder,UIApplicationDelegate {
    Thread 1: signal SIGABRT
    このエラーが永遠に解決しないです。

    キャンセル

  • harago

    2019/06/20 21:12

    すみません。
    解決しました。
    本当にありがとうございました!

    キャンセル

  • dsuzuki

    2019/06/20 21:15

    解決した内容を回答欄に記載して、解決済みとしてください。

    キャンセル

回答 1

check解決した方法

0

storyboardを編集して解決済み

投稿

  • 回答の評価を上げる

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

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

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

  • 回答の評価を下げる

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

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

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

  • 2019/06/20 21:42

    できれば、今後同じ問題を抱えた人のために、詳細な記載をお願いします。
    (既に存在しない)testImage7を全文検索(cmd + shift + f)して、いずれかのstoryboardに残っていたということでしょうか

    キャンセル

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

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

関連した質問

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