我无法弄清楚这一点:
print(module)
print(Globals.sharedInstance.dataModuleName)
let kind:NSString = module[Globals.sharedInstance.dataModuleName] as! NSString
将打印出来,然后因为一个奇怪的原因而崩溃:
( //dic print
{
meta = no;
module = IN;
subject = LT;
variable = A2;
}
)
module // print the right field we are looking for inside the dictionary .
致命错误:在解包可选值时意外发现nil
但是你可以看到该模块是一个有效的字典,也是dataModuleName
。
在let kind
行上崩溃。怎么了?
答案 0 :(得分:3)
您的模块Array
Dictionary
不是直接Dictionary
,因此您需要首先访问其第一个对象,然后才能访问模块密钥
let kind:String = module[0][Globals.sharedInstance.dataModuleName] as! String
注意:一次成功,快速使用String
而不是NSString
此外,您可以使用if let
和guard
进行初始化,以避免崩溃。