【问题标题】:Found nil for optional value?发现可选值为零?
【发布时间】:2016-08-13 11:24:14
【问题描述】:

我就是想不通:

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。它有什么问题?

【问题讨论】:

    标签: swift


    【解决方案1】:

    你的模块是ArrayDictionary 而不是直接Dictionary,所以你需要先访问它的第一个对象,然后像这样访问模块键

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

    注意: 一个建议,快速使用String 而不是NSString

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

    【讨论】:

    • 非常感谢,但我已经检查了这个和它的字典,我创建了一个名为 data 的字典 var data:NSMutableDictionary=[:]
    • 它的打印方式是数组内的字典,像我的回答一样尝试一次。
    • 对不起,这是对的,非常感谢!当它允许我时会接受。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-07
    • 2016-11-26
    • 1970-01-01
    相关资源
    最近更新 更多