###前提・実現したいこと
UITextFieldに入力された文字が辞書のキーと一致したとき、
UILabelにキーに対する値を表示するというアプリを作りました。
ですが、辞書のキーにない語句を入力してしまった時に、
当たり前なのですが値はnilとなりUILabelの文字列は消えてしまいます。
ですが、
存在しないキーを入力した時、 そのまま前回の値が表示されたまま にしたいのです。
###具体例
たとえばvar dict = ["apple":"りんご", "grape":"ぶどう", "peach":"もも"]
という辞書があったとき、
1)UITextFieldにapple
と入力する
2)UILabelにりんご
と表示される
3)存在しないキーcherry
と入力する
4)UILabelはそのままりんご
と表示されたまま
という処理にしたいのです。
もちろん、そのあとに存在するキーであるgrape
と入力されたらぶどう
と返ってくるように・・・
つまり、
swift
1if 辞書キーがnil { 2 valueLabel.text = 前回nilじゃなかったときに引き出した値 3} else { 4 valueLabel.text = dict[textField.text!] 5}
としたいのです・・・
上記「nilじゃなかったとき」のキーはapple
の場合もgrape
の場合もあり、辞書のキーは場合によってはさらに増やすことになるため、
動的に「前回nilじゃなかったときのキーで引き出した値」としたいのです
###試したこと
オプショナルバインディングでどうにかなるのだろうか、と考えてみましたが、
前回の「存在する辞書キー」によって表示された値を保持しておく方法がやはりわかりません・・・
###補足情報(言語/FW/ツール等のバージョンなど)
Swift3 Xcode8
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/24 12:12