找到nil的可选值?

时间:2016-08-13 11:24:14

标签: swift

我无法弄清楚这一点:

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行上崩溃。怎么了?

1 个答案:

答案 0 :(得分:3)

您的模块Array Dictionary不是直接Dictionary,因此您需要首先访问其第一个对象,然后才能访问模块密钥

let kind:String = module[0][Globals.sharedInstance.dataModuleName] as! String

注意:一次成功,快速使用String而不是NSString

此外,您可以使用if letguard进行初始化,以避免崩溃。