teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

追記

2020/09/15 20:32

投稿

TsukubaDepot
TsukubaDepot

スコア5086

answer CHANGED
@@ -46,4 +46,37 @@
46
46
 
47
47
  という具合記述して、デバッグエリアに変換させたい値を表示させると、クラッシュ時にどのような文字列が渡ってきたか確認することが可能です。
48
48
 
49
- ここで得られた値と、公式ドキュメント中にある変換例を見比べてみて、クラッシュした原因を解明されてはいかがでしょうか。
49
+ ここで得られた値と、公式ドキュメント中にある変換例を見比べてみて、クラッシュした原因を解明されてはいかがでしょうか。
50
+
51
+ ##20200916追記
52
+
53
+ テキストフィールとを強制アンラップするには、`textField.text!` のように変数名の最後に `!` をつければ強制アンラップになります(コメントではつけていたのですが、見にくかったかもしれません)。
54
+
55
+ あるいは、たとえば下記の例ように、Stringの Extension を作り、ある文字列が Double 型に変換できるか判別させる方法もあるかと思います。
56
+
57
+ ```Swift
58
+ @IBAction func confirmButton(_ sender: Any) {
59
+ if textField.text!.isEmpty {
60
+ print("文字列入力なし")
61
+ } else {
62
+ print("入力文字列は: ", textField.text!)
63
+ }
64
+
65
+ if !doubleField.text!.isDouble() {
66
+ print("Doubleではない")
67
+ } else {
68
+ print("入力された数値は: ", Double(doubleField.text!)!)
69
+ }
70
+ }
71
+ }
72
+
73
+ extension String {
74
+ func isDouble() -> Bool {
75
+ if let _ = Double(self) {
76
+ return true
77
+ } else {
78
+ return false
79
+ }
80
+ }
81
+ }
82
+ ```