我有一个使用相机界面的自定义屏幕。每隔一段时间,屏幕就会因为虹膜关闭而“冻结”。摆脱这种锁定状态的唯一方法是退出应用程序。
是什么导致相机虹膜保持在这样的关闭位置?
发布于 2012-05-15 13:38:15
通常情况下,当出现一些内存问题时,就会发生这种情况。比如内存不足,或者有时候UICameraPickerController的初始化被一些错误的调用释放了。
减少或避免这种情况的最好方法是,当你试图在时间分配和初始化它的时候访问它,并且当你试图从相机视图中移动时,就取消分配它。
即使当应用程序转到后台时,即最小化释放UICameraPicker,并在进入前台时再次最大化,重新锁定它。
基本上我做的是,我将在.h文件中声明的一个属性如下:
@property (nonatomic, strong) UIImagePickerController *imagePicker;然后在.m文件合成它,当需要的时候,为我点击“拍照”按钮。我使用下面的coed来显示图像拾取器控制器。
if(self.imagePicker == nil || self.imagePicker == NULL)
imagePicker = [[UIImagePickerController alloc]init];
<Then put the code for use of picker.>然后在picker的委托方法中获取图像,在适当的属性或iVar中存储图像后,使用以下代码释放imagePicker的实例。
self.imagePicker = nil;这将为我解决问题。希望这也能帮助你解决你的问题。
https://stackoverflow.com/questions/9420051
复制相似问题