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

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

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

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

Swift

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

Q&A

解決済

2回答

244閲覧

Xcodeのエラー「Thread 1: signal SIGABRT」について

shisen-t

総合スコア21

Xcode

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

Swift

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

0グッド

0クリップ

投稿2019/04/02 08:35

編集2019/04/02 09:19

UITextViewに文字を入力した後にキーボードの閉じるボタンを押すとキーボードが閉じる処理を行えるようにしたいと考えています。
UITextViewに文字を入力するところまでは無事に進んだのですが、いざ閉じるボタンを押すと「Thread 1: signal SIGABRT」のエラーが出てしまいます。Outlet接続がすべてつながっていることや黄色の警告が出ていないことを確認しました。

consoleには「Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[schedule.memoViewController commitButtonTapped]: unrecognized selector sent to instance 0x11fddc9a0'」と表示されています。

改善策をご存知の方がいらっしゃれば、ご教授いただけますと幸いです。

Swift

1コード 2import UIKit 3 4class memoViewController: UIViewController, UITextViewDelegate { 5 6 7 @IBOutlet weak var mytextView: UITextView! 8 9 override func viewDidLoad() { 10 super.viewDidLoad() 11 12 // Do any additional setup after loading the view. 13 14 // 仮のサイズでツールバー生成 15 let kbToolBar = UIToolbar(frame: CGRect(x: 0, y: 0, width: 320, height: 40)) 16 kbToolBar.barStyle = UIBarStyle.default // スタイルを設定 17 18 kbToolBar.sizeToFit() // 画面幅に合わせてサイズを変更 19 20 // スペーサー 21 let spacer = UIBarButtonItem(barButtonSystemItem: UIBarButtonItem.SystemItem.flexibleSpace, target: self, action: nil) 22 23 // 閉じるボタン 24 let commitButton = UIBarButtonItem(barButtonSystemItem: UIBarButtonItem.SystemItem.done, target: self, action: Selector(("commitButtonTapped"))) 25 26 27 kbToolBar.items = [spacer, commitButton] 28 29 30 mytextView.inputAccessoryView = kbToolBar 31 32 33 34 35 } 36 37 func commitButtonTapped (){ 38 self.view.endEditing(true) 39 } 40 41 42 43}

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

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

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

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

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

fuzzball

2019/04/02 09:06

Consoleに表示されているエラーメッセージを書いて下さい。
fuzzball

2019/04/02 09:13

*** Terminating app で始まるやつです。
guest

回答2

0

ベストアンサー

let commitButton = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(commitButtonTapped))
@objc func commitButtonTapped (){ self.view.endEditing(true) }

この2つを変えてあげると、動くかと思います。また、エラーを読むときは、右下のコンソール部分に表示されるreasonから読むと分かるかと思います。

投稿2019/04/02 09:31

dreamland

総合スコア43

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

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

shisen-t

2019/04/02 09:36

無事動かすことができました。ありがとうございます。 consoleの表示をよく読み、対処できるよう精進します。
guest

0

@objc付けて下さい。

swift

1@objc func commitButtonTapped (){

詳細は「swift4 @objc」でググって下さい。
あと、Selectorではなく#selectorを使って下さい。(これはSwift3からだったと思いますSwift2.2からです)

なるべく新しい記事を参照して勉強して下さい。

投稿2019/04/02 09:22

編集2019/04/03 00:32
fuzzball

総合スコア16731

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問