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

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

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

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

Swift

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

Q&A

1回答

1168閲覧

Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional valueと出ます。

yudai0224

総合スコア17

Xcode

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

Swift

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

0グッド

0クリップ

投稿2019/08/25 14:21

編集2022/01/12 10:55

前提・実現したいこと

足し算のアプリ作成中に出てきました。
初心者ですが、解決方法のわかる方、よろしくお願いします。

イメージ説明

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

Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value

該当のソースコード

import UIKit class ViewController2: UIViewController { @IBOutlet var January: UITextField! @IBOutlet var February: UITextField! @IBOutlet var March: UITextField! @IBOutlet var April: UITextField! @IBOutlet var May: UITextField! @IBOutlet var June: UITextField! @IBOutlet var July: UITextField! @IBOutlet var August: UITextField! @IBOutlet var September: UITextField! @IBOutlet var October: UITextField! @IBOutlet var November: UITextField! @IBOutlet var December: UITextField! @IBOutlet var Year: UITextField! override func viewDidLoad() { super.viewDidLoad() } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() } @IBAction func Add(_ sender: UIButton) { let x1 = Int(January.text!) let x2 = Int(February.text!) let x3 = Int(March.text!) let x4 = Int(April.text!) let x5 = Int(May.text!) let x6 = Int(June.text!) let x7 = Int(July.text!) let x8 = Int(August.text!) let x9 = Int(September.text!) let x10 = Int(October.text!) let x11 = Int(November.text!) let x12 = Int(December.text!) let y = x1! + x2! + x3! + x4! + x5! + x6! + x7! + x8! + x9! + x10! + x11! + x12! Year.text = y.description } }

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2019/08/25 14:47

急募という情報は不要ですので削除しましょう。
hameji

2019/08/25 22:22 編集

アドバイスまでに スクリーンショットのエラーをよくみてみましょう。 キーワードは nil optional です 追記 下記ページの「Optional型変数でnilでないことを言い張る「!」」 の2個目のコードの下から読んでみてください。 https://www.yoheim.net/blog.php?q=20150401
guest

回答1

0

Int("文字列")
init?<S>(_ text: S, radix: Int = 10)
というように文字列からIntに変換する場合、戻り値の型はIntではなくInt?になり、変換できなかった場合はnilになります。
そしてそのnilが入っている変数を!で強制的にアンラップすると、そのように実行時エラーが発生します。
(たぶん、いくつかのテキストフィールドが空白のままAddボタン押したんでしょう。)

解決方法としては、変換に失敗したら(nilだったら)ユーザーにアラートを提示するといった適切なエラー処理をすれば良いと思います。

書き方はいろいろありますが、とりあえず思いつく方法でやってみてください。

投稿2019/08/26 01:00

takabosoft

総合スコア8356

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問