🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Swift

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

Q&A

1回答

893閲覧

エラー:Unexpectedly found nil while implicitly unwrapping an Optional valueについて

BIRANOBA

総合スコア4

Swift

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

0グッド

0クリップ

投稿2019/10/17 18:25

編集2019/10/18 03:35

https://qiita.com/ryomaDsakamoto/items/ab4ae031706a8133f193
上記のサイトにあるコードを実行したのですがどうしても
”dateField.inputView = datePicker”の箇所で以下のメッセージがが出ます。
Unexpectedly found nil while implicitly unwrapping an Optional value
いろいろ調べて試してみたのですが、解決に至っていません。
dataFieldがnilになったままアンラッピングしようとしているせいだと思いますが、、、
お手数ですが、コードのどこをどう変更したらいいかご助言よろしくお願いします。

以下コードの写しになります。

import UIKit class ViewController: UIViewController { //UITextfieldに紐づいてる @IBOutlet weak var dateField: UITextField! //UIDatePickerを定義するための変数 var datePicker: UIDatePicker = UIDatePicker() override func viewDidLoad() { super.viewDidLoad() // ピッカー設定 datePicker.datePickerMode = UIDatePicker.Mode.date datePicker.timeZone = NSTimeZone.local datePicker.locale = Locale.current dateField.inputView = datePicker // 決定バーの生成 let toolbar = UIToolbar(frame: CGRect(x: 0, y: 0, width: view.frame.size.width, height: 35)) let spacelItem = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: self, action: nil) let doneItem = UIBarButtonItem(barButtonSystemItem: .done, target: self, action: #selector(done)) toolbar.setItems([spacelItem, doneItem], animated: true) // インプットビュー設定(紐づいているUITextfieldへ代入) dateField.inputView = datePicker dateField.inputAccessoryView = toolbar } // UIDatePickerのDoneを押したら発火 @objc func done() { dateField.endEditing(true) // 日付のフォーマット let formatter = DateFormatter() //"yyyy年MM月dd日"を"yyyy/MM/dd"したりして出力の仕方を好きに変更できるよ formatter.dateFormat = "yyyy年MM月dd日" //(from: datePicker.date))を指定してあげることで //datePickerで指定した日付が表示される dateField.text = "(formatter.string(from: datePicker.date))" } }

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

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

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

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

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

hameji

2019/10/17 23:51 編集

せっかくプレビュー画面があるので、 コードは上下を 「```」で囲んで、改行をきちんと挟み インデント(コードの{ を開くところと閉じるところ)を 揃えた形式にしてもらえませんか? 例えばこのように https://teratail.com/questions/217832
guest

回答1

0

google翻訳
オプション値を暗黙的にアンラップしているときに、予期せずにnilが見つかりました

ってことなんで、エラーのでた行を含めその前2,3行の間に出てくるクラスや変数の中身がどうなってるか見てみればどうでしょう。

nilになってたりしてないですか

投稿2019/10/18 00:05

y_waiwai

総合スコア88038

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問