2016-05-14 5 views
1

jsonファイル内の辞書(同じキーを含む)からデータを解析する必要があります。問題は、一部のディクショナリでは、同じキーの値が文字列ですが、それはもう一方の浮動小数点型の値です。 (オプションの読み込み:私が使用するcsv to jsonコンバーターはダッシュの後に空白があるため、負の10進数を文字列として認識します: " - 4.50"。私はそのスペースを削除してfloatに一度キャストします私は次の操作を行うことを試みた文字列開封されている)jsonからAnyObjectへのガードステートメントでアンラップ

:。

guard let profit = data["profit"] as? AnyObject else { return } 
if profit as! Float != nil { 
    // Use this value 
} else { 
    // It is a string, so delete the space and cast to float 
} 

は関係なく、私が入れてどのように存在し、このための簡単な修正になることはありませ必要がありますが?そして!ガードステートメントでは、コンパイラは不平を言います。

答えて

1

ディクショナリ値のデフォルトのタイプは、とにかにAnyObjectです。このタイプのキャストは冗長です。

あなたはisオペランド

guard let profit = data["profit"] else { return } 
if profit is Float { 
    // Use this value 
} else { 
    // It is a string, so delete the space and cast to float 
} 

かを含め、適切な型キャストと単純

guard let profit = data["profit"] else { return } 
if let profitFloat = profit as? Float { 
    // Use this value 
} else if let profitString = profit as? String { 
    // It is a string, so delete the space and cast to float 
} 
+0

おかげでトリックをした多くのことを、種類を確認することができます! – nontomatic

関連する問題