如何轻松读取存储在词典中的AnyObject?

时间:2016-04-29 18:28:06

标签: swift dictionary anyobject

我有一个存储字符串和整数的字典。这本词典的类型是[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

谢谢。

1 个答案:

答案 0 :(得分:1)

你不能。当您将字典值设为[String:AnyObject]时,您会丢弃字典值的静态类型。你正在做什么,把每个值都投射到你所知道的是正确的。

真正的解决方案当然是拥有一个带有occupationage 属性的人类型

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

现在每个属性都有固有的类型,你不需要施放。