当前位置: 首页 > 知识库问答 >
问题:

致命错误:在展开可选值SwiftUI AnimateImage时意外发现nil

邓赤岩
2023-03-14

我正在使用SDWebImage来显示来自于一个文件恢复数据库的图像,并且当前得到了错误:

致命错误:在展开可选值时意外发现为零。

不太确定如何执行if检查以防止强制展开,因此如果有人能向我展示另一个语法示例,我将不胜感激。

@ObservedObject var movies = getMoviesData()

...

ForEach(self.movies.datas) { item in
        VStack {
             Button(action: {}) {
                 AnimatedImage(url: URL(string: item.img)!)
                  .resizable()
                  .frame(height: 425)
                  .padding(.bottom,15)
                  .cornerRadius(5)                           
              }
         }
}

还尝试将其与nil进行比较(正如文章中所建议的:“致命错误:在展开可选值时意外发现nil”是什么意思?)。

共有1个答案

丁俊智
2023-03-14

问题是您正在比较未包装的值与nil。您的程序甚至在比较之前就崩溃了。

您需要比较一个可选值:

if (URL(string: item.img) != nil) { ... }

如果让确定url不是nil,则最好使用

Button(action: {}) {
    if let url = URL(string: item.img) {
        AnimatedImage(url: url)
            .resizable()
            .frame(height: 425)
            .padding(.bottom, 15)
            .cornerRadius(5)
    }
}

 类似资料: