微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决致命错误:在展开可选值 SwiftUI AnimatedImage 时意外发现 nil

我正在使用 SDWebImage 显示 Firestore 数据库中的图像,但当前出现错误

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

不太确定如何进行 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 进行比较(如文章中的建议:What does "Fatal error: Unexpectedly found nil while unwrapping an Optional value" mean?),但不起作用。

enter image description here

解决方法

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

您需要比较一个可选值:

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

最好使用 if-let 来确保 url 不是 nil

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。