我遇到以下错误:
Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value
在我的ProfileView()
即时消息中使用import URLImage
库。
URLImage(URL(string: self.profileViewModel.profileURL)!, placeholder: Image(systemName: "circle"),
content: {
$0.image
.resizable()
.aspectRatio(contentMode: .fill)
.frame(width: 130, height: 130)
.cornerRadius(15)
.overlay(
Image(systemName: "plus.circle.fill")
.foregroundColor(.gray)
.font(.largeTitle)
,alignment: .bottomTrailing)
.onTapGesture {
self.profileViewModel.showImagePicker = true
}
}
)
在我的ProfileView()
即时消息中使用.onAppear(perform: loadUserData)
这很好,可以为用户恢复正确的数据并按预期显示。
func LoadAUser(userId: String) {
Firestore.firestore().collection("users").document(userId).getDocument{(snapshot, error) in
guard let snap = snapshot else {
print("error fetching data")
return
}
let dict = snap.data()
guard let decodedUser = try? User.init(fromDictionary: dict!) else { return }
print("decoded user - load user - \(decodedUser)")
self.bio = decodedUser.bio
self.occupation = decodedUser.occupation
self.city = decodedUser.city
self.profileURL = decodedUser.profileURL
let storageRoot = Storage.storage().reference(forURL: "gs://myapp.appspot.com").child("avatar").child(userId)
storageRoot.downloadURL{(url, error) in
if error != nil {
print(error!.localizedDescription)
return
}
let profileDownload = url?.absoluteString
self.profileURL = profileDownload!
}
print("profileURL - \(self.profileURL)")
}
}
存储中有一个图像,我可以检索它,因为日志显示print("profileURL - \(self.profileURL)")
这里一切都很好
我似乎无法在ProfileView()
中显示个人资料图片>
该功能在配置文件视图中被调用,就像在.onAppear中那样>>
func loadUserData() { DispatchQueue.main.asyncAfter(deadline: .now() + 10) { self.profileViewModel.LoadAUser(userId: Auth.auth().currentUser!.uid) } }
我曾尝试添加延迟:
DispatchQueue.main.asyncAfter(deadline: .now() + 10)
只是图像不会加载,我不确定在加载其他所有内容时为什么会说
found nil
,但是当我添加此URLImage以将图像带回时,它显示为nil,即使日志说它具有正确的URL 。UPDATE
我有一个class ProfileViewModel: ObservableObject
哪个有
@Published var profileURL: String = ""
在loadAUser函数中。我设置了:
self.profileURL = profileDownload!
我遇到以下错误:线程1:致命错误:在使用导入URLImage库在我的ProfileView()im中解开可选值时,意外发现nil。 URLImage(URL(...
我看不到您发布的代码中的错误,但是关于您的课程,有些事情您没有发布过:
您似乎有一个类(profileViewModel),必须将图像保存到该类中,该变量位于类的顶部,声明如下:@Published var image ...