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?
答案 0 :(得分:1)
NSDictionary
和NSMutableDictionary
是两个不同的类。 NSMutableDictionary
继承自NSDictionary
。虽然您可以将NSMutableDictionary
投射到NSDictionary
,但您无法将NSDictionary
投射到NSMutableDictionary
。
如果您有NSDictionary
,并且希望获得NSMutableDictionary
,则需要致电mutableCopy
上的NSDictionary
。
但这是斯威夫特。根本不要使用这些类中的任何一个。使用Swift词典。使用var
或let
表示字典是否可变。