swiftでiOSアプリを作成中に、
Value of optional type ‘String?’ must be unwrapped to a value of type ‘String’
というエラーに出くわしました。
javascriptやperlといったStringやIntといった型をあまり気にしなくてもプロダクトが作れてしまうプログラミング言語しか触ったことがないわたしには、「なんだこりゃ?」という状態です笑
エラーが起こった原因
このエラーは、
String(文字列)しか入らない部分に対して、変数を配置したときに発生しました。
1 |
title.text = "Hi " + nameArea.text |
【”Hi ” + 変数】という文字列を連結している処理に対して、変数の部分がString以外のものが入る可能性があることに対するエラーでした。
if文でエラーを解消した方法
このエラーに対して、
1 2 3 |
if let name = nameArea.text { title.text = "Hi " + name } |
といった具合に、if文で先にnameArea.textに値を代入して、値が代入されていることが担保されている状態で文字列連結することで正常に動作しました。
静的型付き言語
- Java
- Swift
- Go
といった静的型付き言語を経験したことがないゆえに、こんな簡単なエラーにもつまづいてしまいました・・・
GoやSwiftは人気が高くなってきていて、需要もある言語なので、ともに勉強していこうと思います!