- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:swift初心者で、計算機を作っています)
Swift初心者のための計算機作成方法
このQ&Aのポイント
- エラーが出てしまいます。nilを代入するのがいけないらしいことは分かったのですが、ではどうしたらよいのかいろいろ調べていろいろ行ったのですが、どうしても治りません。
- この記述をこう直せばいい、という回答をお願いします。
- Swift初心者の方に向けた計算機作成方法を解説します。エラーが出る原因として、nilを代入することが問題であることを理解していますが、解決方法については試行錯誤しても治らないとのことです。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
いろいろつっこみどころのあるコーディングですが、まだ作成途中のものだと思うので、エラーとなっている質問部分だけアドバイスします。 おそらくnumberBox1というテキストフィールドの初期値が空欄になっていて > num1 = numberBox1.text! のnum1が""となり、 > num2 = Int(num1)! のInt(num1)がnilとなり、それを!でアンラップしようとしてエラーになったのだと思います。 解決方法の1つとしては、StoryboardでnumberBox1のテキストフィールドに最初から"0"という文字列を入れておけば、 num1は"0"という値が得られるので、「Int(num1)!」は0となり、エラーは発生しなくなると思います。 もう一つの解決方法として、numberBox1の値が""の場合でも処理できるようにしたいのであれば、 if Int(num1) != nil { num2 = Int(num1)! } else { num2 = 0 } という形でInt(num1)がnilかどうか判断して処理すればよいです。 なお、swiftにはこのコーディングを簡略化して記述できる演算子があり、 num2 = Int(num1) ?? 0 と書くだけで、Int(num1)がnilでなければそれをアンラップした値を返却し、nilなら「??」の次に指定した値を返却することができます。 swiftのOptional型については http://qiita.com/cotrpepe/items/518c4476ca957a42f5f1 で、とてもわかりやすく解説されているので、参考にするとよいと思います。