gpt4 book ai didi

ios - swift - libc++abi.dylib : terminating with uncaught exception of type NSException (lldb)

转载 作者:行者123 更新时间:2023-11-30 11:22:12 27 4
gpt4 key购买 nike

我正在制作一个应用程序,您可以在其中上传照片,然后它获取 downloadURL 并将其保存在数据库中,但在将链接保存到数据库之前我收到错误。

*** 由于未捕获的异常“FIRInvalidArgumentException”而终止应用程序,原因:“不支持的类型:NSURL(在字段链接中找到)”

。。.

libc++abi.dylib:以 NSException 类型的未捕获异常终止(lldb)

线程1:信号SIGABRT

我似乎无法理解为什么。

谢谢

    import UIKit
import Firebase
var docRefIm: DocumentReference!
var docRefImC: CollectionReference!

class carregar: UIViewController,UINavigationControllerDelegate, UIImagePickerControllerDelegate {
@IBOutlet weak var upload: UIButton!
@IBOutlet weak var myImage: UIImageView!
@IBAction func uploadBt(_ sender: Any) {

let image = UIImagePickerController()
image.delegate = self
image.allowsEditing = true
image.sourceType = UIImagePickerControllerSourceType.photoLibrary
self.present(image, animated: true){

}
}
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {

var selectedImage: UIImage?

if let editedImage = info[UIImagePickerControllerEditedImage] as? UIImage {
myImage.image=editedImage
selectedImage = editedImage
} else if let image = info[UIImagePickerControllerOriginalImage] as? UIImage
{
myImage.image=image
selectedImage = image
}
self.dismiss(animated: true, completion: nil)
let storageRef = Storage.storage().reference()
let imageName = NSUUID().uuidString
let fullImageRef = storageRef.child("casamentoMR/\(imageName).jpeg")
let compImageRef = storageRef.child("casamentoMR/compressed/\(imageName).jpeg")
let newMetadata = StorageMetadata()
newMetadata.contentType = "image/jpeg";
if let uploadDataComp = UIImageJPEGRepresentation(myImage.image!, 0.15){
compImageRef.putData(uploadDataComp, metadata: newMetadata, completion: { (metadata, error) in
if error != nil {
print(error)
return
} else {
compImageRef.downloadURL { (url, error) in
guard let downloadURL = url

else {
// Uh-oh, an error occurred!
return
}
docRefImC = Firestore.firestore().collection("Imagens")
docRefImC.getDocuments() { (querySnapshot, err) in
if let err = err {
print("Error getting documents: \(err)")
} else {
for document in querySnapshot!.documents {
print("\(document.documentID) => \(document.data())")
id += 1
}
docRefIm = Firestore.firestore().collection("Imagens/").document(String(id))
docRefIm.setData([
"Link": downloadURL,
"ID": id+1
]) { err in
if let err = err {
print("Error writing document: \(err)")
} else {
print("Document successfully written!")
}
}
}
}
}}

})
}
if let uploadData = UIImageJPEGRepresentation(myImage.image!, 0.7){
fullImageRef.putData(uploadData, metadata: newMetadata, completion: { (metadata, error) in
if error != nil {
print(error)
return
}
})
}

}

func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
dismiss(animated: true,completion: nil)
}
override func viewDidLoad() {
super.viewDidLoad()
view.setGradientBackground(colorOne: Colors.MarPink, colorTwo: Colors.AzRui)
// Do any additional setup after loading the view.
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}

最佳答案

只需添加将 URL 更改为字符串

                                "Link": downloadURL,

"Link": downloadURL.absoluteString,

关于ios - swift - libc++abi.dylib : terminating with uncaught exception of type NSException (lldb),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51144047/

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