ios – Swift 3中的UIImagePickerController

前端之家收集整理的这篇文章主要介绍了ios – Swift 3中的UIImagePickerController前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我最近使用开发人员测试版更新了 Xcode 8中的 Swift 3.
我正在尝试实施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

猜你在找的iOS相关文章