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


谢谢。

最佳答案

你不能将其设为[String:AnyObject]时,就放弃了字典值的静态键入。您在做什么,将每个值都转换为您知道的值是正确的。

真正的解决方案当然是具有occupationage属性的Person类型!

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


现在,每个属性都有一个固有类型,您无需强制转换。

10-06 09:42