2016-04-29 10 views
0

私は文字列と整数を格納する辞書を持っています。この辞書の種類は[String:AnyObject]です。辞書に格納されたAnyObjectを簡単に読み取る方法は?

var person: [String:AnyObject] = ["occupation": "teacher", "age": 1] 

は、私はこの方法でこの辞書をお読みください。

occupationLabel.text = person["occupation"] as! String 
let newAge = person["age"] as! Int + 1 

それは不便です。どのようにしてこの辞書を次のように使用できますか?

occupationLabel.text = person["occupation"] 
let newAge = person["age"] + 1 

ありがとうございます。

答えて

1

できません。あなたはこれを[String:AnyObject]にしたときに、辞書値の静的な型を捨てました。あなたがしていることは、それぞれの価値をあなたが知っているものにキャストすることが正しいことです。

本当ソリューションは、当然のことながら、occupationage性質持つ人タイプを持つことです!

struct Person { 
    var occupation:String 
    var age:Int 
} 

各プロパティに固有の型があり、キャストする必要はありません。

関連する問題