gpt4 book ai didi

swift - 尝试更改个人资料照片时应用程序崩溃

转载 作者:行者123 更新时间:2023-11-30 10:41:06 25 4
gpt4 key购买 nike

我正在我的应用程序的编辑个人资料部分工作。当我尝试更改和更新用户个人资料照片时。应用程序崩溃,我收到此错误

原因:'URL 方案必须是 gs://、http://或 https://之一

当我创建新的个人资料并添加个人资料照片或上传照片时,它工作正常,但当我尝试更改个人资料照片时,我得到了这个。它将首先删除个人资料照片并更新(当用户没有照片时, ImageView 保持灰色),然后当我尝试再次重新更改照片时,它会崩溃。

这是我的代码。

func updateProfileImage() {
guard imageChanged == true else { return }
guard let currentUid = Auth.auth().currentUser?.uid else { return }
guard let user = self.user else { return }

Storage.storage().reference(forURL: user.profileImageUrl).delete(completion: nil)

let filename = NSUUID().uuidString

guard let updatedProfileImage = profileImageView.image else { return }

guard let imageData = updatedProfileImage.jpegData(compressionQuality: 0.3) else { return }

STORAGE_PROFILE_IMAGES_REF.child(filename).putData(imageData, metadata: nil) { (metadata, error) in

if let error = error {
print("Failed to upload image to storage with error: ", error.localizedDescription)
}

STORAGE_PROFILE_IMAGES_REF.downloadURL(completion: { (url, error) in
USER_REF.child(currentUid).child("profileImageUrl").setValue(url?.absoluteString, withCompletionBlock: { (err, ref) in

guard let userProfileController = self.userProfileController else { return }
userProfileController.fetchCurrentUserData()

self.dismiss(animated: true, completion: nil)
})
})
}
}
}



最佳答案

首先要检查 URL 是否有效,或者是否使用防护

  guard let urlis = yourUrl else{
// url is nill.
return
}
if let url = NSURL(string: urlis) {
// your image code
}
else{
// url is invalid.
return
}

添加异常断点:这个快速提示将为您节省大量调试时间!因此 Xcode 将在捕获异常的地方停止。

在您的项目中,转到断点导航器 enter image description here ,单击“+”按钮和“添加异常断点...”

关于swift - 尝试更改个人资料照片时应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56783298/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com