Fatal error: Unexpectedly found nil while unwrapping an Optional value SwiftUI AnimatedImage
Fatal error: Unexpectedly found nil while unwrapping an Optional value SwiftUI AnimatedImage
我正在使用 SDWebImage
显示来自 firestore 数据库的图像,目前出现错误:
Fatal error: Unexpectedly found nil while unwrapping an Optional value.
不太确定如何进行 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
进行比较。您的程序甚至在比较之前就崩溃了。
您需要比较可选值:
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)
}
}
我正在使用 SDWebImage
显示来自 firestore 数据库的图像,目前出现错误:
Fatal error: Unexpectedly found nil while unwrapping an Optional value.
不太确定如何进行 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
进行比较。您的程序甚至在比较之前就崩溃了。
您需要比较可选值:
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)
}
}