我有一个存储字符串和整数的字典。这本词典的类型是[String: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
谢谢。
答案 0 :(得分:1)
你不能。当您将字典值设为[String:AnyObject]
时,您会丢弃字典值的静态类型。你正在做什么,把每个值都投射到你所知道的是正确的。
真正的解决方案当然是拥有一个带有occupation
和age
属性的人类型 !
struct Person {
var occupation:String
var age:Int
}
现在每个属性都有固有的类型,你不需要施放。