我正在尝试使用UIImagepickerController从照片中选取图像。
我在游戏场景类中使用下面的函数
(用于将图像导入游戏)
但我得到了错误“线程1:致命错误:在展开可选值时意外发现nil”
在这条线上
self.view!.window!.rootViewController!
功能如下。我不知道该如何解决它,我已经寻找了一个答案没有多少运气,所以任何帮助将是伟大的。
func getPhotoFromSource(source:UIImagePickerControllerSourceType ){
if UIImagePickerController.isSourceTypeAvailable(source)
{
let imagePicker = UIImagePickerController()
imagePicker.modalPresentationStyle = .currentContext
imagePicker.delegate = self
imagePicker.sourceType = source
imagePicker.allowsEditing = false
if (source == .camera){
imagePicker.cameraDevice = .front
}
let vc:UIViewController = self.view!.window!.rootViewController! //Thread 1: Fatal error: Unexpectedly found nil while unwrapping an Optional value
vc.present(imagePicker, animated: true, completion: nil)
} }
最佳答案
而不是
let vc:UIViewController = self.view!.window!.rootViewController!
,使用可选链接并尝试
guard let vc = self.view?.window?.rootViewController else {
print("something went wrong")
}
如果您在代码上方运行代码,则只需运行上面的print语句,就可以看到您的视图、窗口或
rootViewController
在尝试强制展开时不存在。能否共享设置
viewController
的代码?关于swift - UIImagePickerController Spritekit,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48553962/