ios – 当试图在iPad上展示后置摄像头时应用程序冻结

ios – 当试图在iPad上展示后置摄像头时应用程序冻结,第1张

概述我正在开发的应用程序可在iPhone和iPhone上运行. iPad.应用程序具有的功能之一是从相机捕获图像.我正在使用UI ImagePickerController来实现此功能.这是我的代码块; self.imagePicker.sourceType = .camera self.imagePicker.cameraCaptureMode = .photoself.p 我正在开发的应用程序可在iPhone和iPhone上运行. iPad.应用程序具有的功能之一是从相机捕获图像.我正在使用UI ImagePickerController来实现此功能.这是我的代码块;
self.imagePicker.sourceType = .camera            self.imagePicker.cameraCaptureMode = .photoself.present(self.imagePicker,animated: true,completion: nil)

该应用程序的工作原理是它在iPhone设计,当我在iPad上运行相同的代码应用冻结.此问题仅发生在iPad中,但仅适用于后置摄像头.如果我从图像选择器中选择前置摄像头,应用程序会启动摄像头,但是当按下开关摄像头按钮时它会冻结.

据我所知,日志问题发生在应用程序试图绘制相机时.

日志:

2016-12-20 20:10:33.708816 Ronin[681:148977] CGContextAddpath: invalID context 0x0. If you want to see the backtrace,please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.Dec 20 20:10:33  Ronin[681] <Error>: CGContextAddpath: invalID context 0x0. If you want to see the backtrace,please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.2016-12-20 20:10:33.708925 Ronin[681:148977] clip: invalID context 0x0. If you want to see the backtrace,please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.Dec 20 20:10:33  Ronin[681] <Error>: clip: invalID context 0x0. If you want to see the backtrace,please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.2016-12-20 20:10:33.708991 Ronin[681:148977] CGContextSetFill@R_403_6004@With@R_403_6004@: invalID context 0x0. If you want to see the backtrace,please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.Dec 20 20:10:33  Ronin[681] <Error>: CGContextSetFill@R_403_6004@With@R_403_6004@: invalID context 0x0. If you want to see the backtrace,please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.2016-12-20 20:10:33.709047 Ronin[681:148977] CGContextFillRects: invalID context 0x0. If you want to see the backtrace,please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.Dec 20 20:10:33  Ronin[681] <Error>: CGContextFillRects: invalID context 0x0. If you want to see the backtrace,please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.

我用于测试的iPad是:iPad Air 2 – iOS 10.2

编辑

UIImagePickerController.isSourceTypeAvailable(.camera)代码块为我的测试用例返回true.我已经添加了这个控件,但之前没有提到过.

另外我注意到,当应用程序被冻结时,内存消耗开始增加,同时应用程序崩溃是因为使用了太多内存.

另外,我创建了一个空项目并实现了相同的捕获图像的方法,它在空项目中设计.在这一点上我认为这个问题可能与某些项目设置有关.

编辑 – 2

我为CGPostError添加了符号断点,这里是stacktrace:

似乎发送到UIProgressVIEw的无效上下文是问题的原因.

任何帮助将不胜感激.

编辑 – 3

正如我之前提到的,我检查了我的代码块中的UIImagePickerController.isSourceTypeAvailable(.camera),问题与相机可用性无关.当我以模态方式呈现时,相机也可以作为d出窗口.

解决方法 您应该检查相机是否可用:
if UIImagePickerController.isSourceTypeAvailable(.camera) {    // Implement UIImagePickerController} else {    // Show error message}
总结

以上是内存溢出为你收集整理的ios – 当试图在iPad上展示后置摄像头时应用程序冻结全部内容,希望文章能够帮你解决ios – 当试图在iPad上展示后置摄像头时应用程序冻结所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1114449.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存