前提・実現したいこと
Swiftで、身長と体重と歩数を使って消費カロリーを計算するアプリを作っています。
歩数から消費カロリーを計算するという処理で"Unexpectedly found nil while unwrapping an Optional value"というエラーが出てしまい困っています。
該当の変数にはnilではなく値が入っていると思うのですが、改善できません。間違いを教えていただけると幸いです。
エラー内容
Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value
該当のソースコード
Swift
1override func viewDidLoad() { 2 super.viewDidLoad() 3 keiyuu = String(shoki) 4 avoidingCheatSteps.text = String(stepa) 5 weight2.text = myweight 6 height2.text = myheight 7 self.steppp = "0" 8 self.keiyu.text = steppp 9 10 11 let mywei = Double(myweight) 12 let myhei = Double(myheight) 13 let ste = Double(steppp) 14 defer{ 15 16 17 18 let hoho:Double = myhei! * 0.45 //歩幅計算(身長X0.45) 19 let km = ste! * hoho * 0.01 //歩行距離 (歩数X歩幅) 20 let jikan = km / 81 //歩行時間(歩行距離÷歩行速度[81]) 21 let jikann = jikan / 60 //分を時に変更 22 let kcal = 1.05 * 3.3 * jikann * mywei! //カロリー計算 1.05 X メッツ[3.3] X 時間 X 体重 23 let Ikcal = Double(kcal) 24 mycal.text = String("(Ikcal)kcal") 25 26 }
歩数取得のソースコード
Swift
1 getCountStepUsingStatisticsQueryWithoutThirdpartyData(from: start, to: end) { (query, statistics, error) in 2 DispatchQueue.main.async { 3 if let stepa = statistics?.sumQuantity()?.doubleValue(for: .count()) { 4 self.avoidingCheatSteps.text = "(Double(stepa)) steps" 5 self.keiyu.text = "(Int(stepa)) steps" 6 7 } else { 8 self.avoidingCheatSteps.text = "nul" 9 } 10 } 11 } 12
試したこと
変数に初期値を与えてみたりしましたが、そのまま初期値が反映されてしまいました。
補足情報(FW/ツールのバージョンなど)
Xcode iOS13
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。