前提・実現したいこと
swiftUI で数字が入力されたらシートを表示して
数字以外が入力されたらアラートを表示するアプリを作成しています。
TextField に入力された文字列が Double に変換できるか do catch文でチェックすることで
数字かそうでないかを判断しようと考えています。
その do catch文でエラーメッセージが発生してしまいました。
発生している問題・エラーメッセージ
Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value
該当のソースコード
ContentView.swift
import SwiftUI struct ContentView: View { @State var bun:String! = "" @State private var showingAlert = false @State private var showingSheet = false var body: some View { VStack{ //Bindingにoptional変数をアンラップして渡すには「text: Binding($bun)!」(強制アンラップ) TextField("入力", text: Binding($bun)!, onCommit:{ a() }) .textFieldStyle(RoundedBorderTextFieldStyle()) .padding() Text(bun) .alert(isPresented: $showingAlert){ Alert(title: Text("title"), message: Text("message"),dismissButton: .default(Text("push"))) } .sheet(isPresented: $showingSheet){ Image(systemName:"hand.thumbsup.fill") } } } func a() { do{ let s:Double! = try Double(bun)! //ここにエラーメッセージが発生 self.showingSheet = true } catch{ self.showingAlert = true } } } struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() } }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。