#過去に出会った警告メッセージとその対処方法備忘録
##環境
- XCode
- Swift4.2
##警告メッセージ
String interpolation produces a debug description for an optional value; did you mean to make this explicit?
##警告発生コード
var text:String? = nil
text = "hoge"
print("\(text)")//warning
##原因と対処方法
###原因
Optional型でwrapされている文字列を、wrapしたまま直接print出力しようとしたことが原因みたい
###対処方法
この場合は、unwrapしてから出力してあげることで解決した。
##対処済みコード1
強制unwrap
var text:String? = nil
text = "hoge"
print("\(text!)")
##対処済みコード2
冗長的だけど、明示的にunwrap
var text:String? = nil
text = "hoge"
if let text = text
{
print("\(text)")
}
else
{
print("nil")
}
##対処済みコード3
??演算子を利用してtextがnilの時のデフォルト値を指定しても良い
var text:String? = nil
text = "hoge"
print("\(text ?? "text is nil")")
##対処済みコード4
Optionalそのままでいいから、警告を消したい時は以下のように記述する
var text:String? = nil
text = "hoge"
print("\(text as String?)")