【发布时间】:2017-01-18 15:04:39
【问题描述】:
我最近使用开发人员测试版在 Xcode 8 中更新到 Swift 3。 我正在尝试实施 Firebase 身份验证,一切进展顺利。
我的问题:
我正在尝试将图像作为用户的个人资料图片上传到 Firebase 数据库。
我以为我可以使用UIImagePickerController 来执行此操作,但是当我这样做时,我得到了一个
“线程7:信号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, animated: true, completion: nil)
}
我还不确定这是否只是 Swift 3 和开发人员 Xcode 8 beta 的问题,或者我只是为 swift 3 做错了。
编辑:
我正在使用 xcode8 的 GM 版本,但仍然遇到同样的错误。
【问题讨论】:
-
哪一行导致错误?
-
顺便说一句 - 你不应该再使用 Xcode 8 的 beta 版本。使用 GM 版本。
-
@rmaddy 好的。我会尝试使用GM版本。
-
哪里出错了?因为您发布的相关代码似乎没问题!你在
didFinishPickingMediaWithInfo中遇到错误吗? -
@KetanParmar 我很确定它将 UIImagePickerController 呈现为给我错误的视图控制器。
标签: ios uiimagepickercontroller swift3 ios10