我最近使用开发人员测试版更新了
Xcode 8中的
Swift 3.
我正在尝试实施Firebase Auth,一切进展顺利.
我正在尝试实施Firebase Auth,一切进展顺利.
我的问题:
我正在尝试将图像作为用户的个人资料图片上传到Firebase数据库.
我以为我可以使用UIImagePickerController来做到这一点,但是当我这样做时,我得到了一个
“Thread 7: Signal SIGABRT
我知道这通常表示什么,但我检查了,当我点击它时,我的图像确实打印了我的测试语句.
我失败的方法:
ViewController.swift
import UIKit import Firebase import Photos class ViewController: UIViewController,UITextFieldDelegate,UIImagePickerControllerDelegate,UINavigationControllerDelegate{ @IBOutlet weak var imageView: UIImageView! @IBOutlet var emailTextField: UITextField! @IBOutlet var passWordTextField: UITextField! @IBOutlet var nameTextField: UITextField! override func viewDidLoad() { super.viewDidLoad() if FIRAuth.auth()?.currentUser?.uid != nil { let storyboard = UIStoryboard(name: "Main",bundle: nil) let view = storyboard.instantiateViewController(withIdentifier: "ProfileViewController") self.present(view,animated: true,completion: nil) } imageView.addGestureRecognizer(UITapGestureRecognizer(target: self,action: #selector(handleSelectProfileImageView))) imageView.isUserInteractionEnabled = true self.emailTextField.delegate = self; self.passWordTextField.delegate = self; self.nameTextField.delegate = self; } func handleSelectProfileImageView() { let picker = UIImagePickerController() picker.delegate = self picker.allowsEditing = true present(picker,completion: nil) }
我不确定这是否只是Swift 3和开发人员Xcode 8 beta的问题,或者我只是对swift 3做错了.
编辑:
我正在使用GM版的xcode8,但仍然会遇到同样的错误.
解决方法
我认为您需要添加隐私 – 在info.plist文件中为camara和照片库添加密钥,例如xcode 8,例如,
Key : Privacy - Media Library Usage Description Value : YES Key : Privacy - Photo Library Usage Description Value : YES Key : Privacy - Camara Usage Description Value : YES
这里的值是字符串而非布尔值.
试试吧.
查看Apple documentation了解更多详情!
参考:this so post