ios - 将照片库中的图像导入 xcode 中的应用程序

标签 ios swift uiimagepickercontroller

我的应用程序不断崩溃,我不知道为什么。我正在逐个部分地开发一个选项卡式应用程序,并在每次完成其中的一部分时对其进行测试。 现在我正在努力尝试从用户的设备导入图像,但我似乎无法获取它。

我目前正在使用 Xcode 10.2.1,我知道委托(delegate)方法发生了一些变化,我已经更改了它们。它构建成功,但每当我点击一个我想导入图像的特定选项卡时,它就会崩溃。

class UserImage: UIViewController,UINavigationControllerDelegate, UIImagePickerControllerDelegate {
    var imagePickerController : UIImagePickerController!

    @IBOutlet var ImageView: UIImageView!

    @IBAction func Edit(_ sender: Any) {
        imagePickerController.delegate = self
        imagePickerController.sourceType = .photoLibrary

        present(imagePickerController, animated: true, completion: nil)
    }

    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any])
    {
        if let image = info[.originalImage] as? UIImage { 
            ImageView.image = image
        } else {
            print("Take another")
        }

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

最佳答案

它正在崩溃,因为您从未真正初始化过 UIImagePickerController。由于您将 imagePickerController 标记为非可选值,因此当您尝试引用它时您的应用程序将崩溃,但它仍然是 nil。将此行添加到 Edit 函数的开头以初始化变量:

imagePickerController = UIImagePickerController()

编辑:或者,如@rmaddy 所述,您可以将 Controller 设为函数的局部变量。在您的示例中,无需将其作为类的属性。本质上,您只需从类的顶部删除声明,而是在函数内声明它:

let imagePickerController = UIImagePickerController()

关于ios - 将照片库中的图像导入 xcode 中的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56264633/

相关文章:

iphone - iPhone:如何使用MACRO检查设备?

ios - 获取 Facebook API 个人资料图片 ios Swift

swift - 如何迭代 Swift 4.1 中的类型数组?

ios - UIImagePickerController 在没有 NS 照片库和相机描述的情况下工作

iPhone 相机图像上传到网络时会旋转

ios - [__NSArrayI 长度] : unrecognized selector sent to instance when moving through views

ios外部显示以编程方式

ios - 删除 Swift 中两个特定分隔符之间的字符,处理嵌套结果

ios - 使用 Google Sign In 和 SwiftUI 检查用户身份验证

ios - 检测所选图片是来自相机还是相机胶卷