如何解决致命错误:在展开可选值 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?),但不起作用。
解决方法
问题在于您将 未包装 值与 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 举报,一经查实,本站将立刻删除。