对NSMutableDictionary的类型转换返回nil

时间:2018-04-30 13:53:43

标签: swift nsdictionary nsmutabledictionary

NSObject *ob //this object has some value
let scoreMap:NSMutableDictionary? = ob as? NSMutableDictionary // the scoreMap is populated with nil value

但是,如果我将上述声明修改为

let scoreMap:NSDictionary? = ob as? NSDictionary

我在scoreMap中获得了所需的值。任何指针为什么这是Dictionary& amp;的NSDictionary?

1 个答案:

答案 0 :(得分:1)

NSDictionaryNSMutableDictionary是两个不同的类。 NSMutableDictionary继承自NSDictionary。虽然您可以将NSMutableDictionary投射到NSDictionary,但您无法将NSDictionary投射到NSMutableDictionary

如果您有NSDictionary,并且希望获得NSMutableDictionary,则需要致电mutableCopy上的NSDictionary

但这是斯威夫特。根本不要使用这些类中的任何一个。使用Swift词典。使用varlet表示字典是否可变。