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