私は辞書からデータを解析しようとしています。私は現在動作するコードを持っているが、私はそれを行うためのより簡潔な方法があると思う。オプションバインディングとそれに続く即時オプションのキャスト
私は私の辞書はこれは私が現在、私を向上させることがしたいデータを解析するために使用していたコードである
let dictionary:[String:Any] = ["pic":"picture"] //opt1
let dictionary:[String:Any] = ["pic":2] //opt2
let dictionary:[String:Any] = ["pi":"this"] //opt3
を等しくすることができる何のための3つのオプションがあります。各オプションの
let _pic = dictionary["pic"]
if _pic != nil && !(_pic is String) {
print("error")
return
}
let pic = _pic as? String
私はのために発生するさまざまなものが欲しい:
OPT3
を示すべきOPT1
pic:String? = Optional(picture)
OPT2エラー
pic:String? = nil
答えがうまくいけば、これをやっていた問題は私のopt3でした。ここにあるのは、辞書に正しいキーがないときにエラーが発生しないようにすることです。 –
それにif ... elseを使うこともできます。 –
私はそのコードで動作しています。私はそれを改良したより簡潔なバージョンを探しています(辞書から解析したすべてのコードに対してこのコードを繰り返す必要があるからです)。しかし、もっと簡潔なバージョンを作ることができないなら、私はそれを持ってる。 –