我的应用程序不断崩溃,我不知道为什么。我正在逐部分地研究选项卡式应用程序,并在每次完成一部分时对其进行测试。 目前,我正在尝试从用户的设备导入图像,但似乎无法获取。
我当前正在使用Xcode 10.2.1,并且我知道委托方法已经进行了一些更改,并且已经对其进行了更改。它可以成功构建,但是每当我在要导入图像的那个特定选项卡上点击时,它就会崩溃。
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)
}
答案 0 :(得分:2)
由于您从未真正初始化UIImagePickerController
,所以它崩溃了。由于您将imagePickerController
标记为非可选值,因此当您尝试引用它时,您的应用将崩溃,但它仍然是nil
。将此行添加到Edit函数的开头以初始化变量:
imagePickerController = UIImagePickerController()
编辑:或者,如@rmaddy所述,您可以将控制器设置为函数的局部变量。在您的示例中,无需使其成为类的属性。本质上,您只需要从类顶部删除声明,而是在函数内部进行声明:
let imagePickerController = UIImagePickerController()