试图在swift中将dictionary添加到nsmutable数组中,出现致命错误:在展开可选值时意外发现nil



我试图创建一个NSMutableArray并从数据库添加字典值(使用fm-db结果集),然后我得到了这个错误:

"fatal error: unexpectedly found nil while unwrapping an Optional value ".

请给出解决此问题的提示。

代码:

var arrCategory :NSMutableArray!
while rs.next(){
    arrCategory.addObject(rs.resultDictionary())
}

除了检查rs.resultDictionary不是nil之外,还要确保您已经分配了可变数组。在你发布的代码中,它只声明:

var arrCategory:NSMutableArray!

但不清楚你是否分配过它;例如:

arrCategory = NSMutableArray()

此外,rsnil,而不仅仅是resultDictionary(如果没有看到完整的代码,就无法判断),所以检查应该是:

if let rs = rs {
    while rs.next(){
        if let result = rs.resultDictionary {
            arrCategory.addObject(result)
        }
    }
}

在添加dictionary之前,您应该检查它是否为nil:

 while rs.next(){
     if(rs.resultDictionary() != nil){
         arrCategory.addObject(rs.resultDictionary())
     }
 }

这是因为您在NSMutableArray中放入了nil,这是不允许的。其中rs.resultDictionary返回nil。如果情况并非如此,请查看。同时,下面的答案会起作用。考虑到Swift语言的精神,更好的方法是:

while rs.next()
{
    if let result = rs.resultDictionary
    {
         arrCategory.addObject(result) ;
    }
}

相关内容

最新更新