【发布时间】:2018-12-26 10:42:37
【问题描述】:
当用户转到用户配置文件选项卡时,他在应用程序中遇到错误并崩溃,我在 URLSession.shared.dataTask 中的 Xcode 中遇到错误
func setupProfile(){
if Auth.auth().currentUser?.uid == nil{
logout()
}else{
usrnNameButton.isHidden = false
let uid = Auth.auth().currentUser?.uid
databaseRef.child("Users").child(uid!).observeSingleEvent(of: .value,
with: { snapshot in
if let dict = snapshot.value as? [String: AnyObject]
{
if let profileImageuRL = dict["pic"] as? String
{
let url = URL(string: profileImageuRL)
URLSession.shared.dataTask(with: url!, completionHandler: { (data, response, error) in
if error != nil {
print(error!)
return
}
DispatchQueue.main.async {
self.PP.image = UIImage(data: data!)
}
}).resume()
}
if let coverImageuRL = dict["CoverPic"] as? String
{
let url = URL(string: coverImageuRL )
URLSession.shared.dataTask(with: url!, completionHandler: { (data, response, error) in
if error != nil {
print(error!)
return
}
DispatchQueue.main.async {
self.coverPic.image = UIImage(data: data!)
}
}).resume()
}
}
})
}
}
这是我设置用户数据的代码
这样任何人都可以帮助我
谢谢
【问题讨论】:
-
我的建议是,当您从 URL 获取图像时,请使用 Kingfisher pod。它只是为你省去了很多麻烦,而且他使用缓存,这样下次你就不会再次下载相同的图像,它还可以在下载你需要的图像时显示一个占位符图像,这一切都发生在后台线程上。简直不能更好。试试看:github.com/onevcat/Kingfisher
-
你好,谢谢重播
-
如果可以的话,你可以编辑我的代码
标签: swift xcode firebase firebase-storage