我们的商业应用程序在使用仪器中的自动化脚本进行测试时崩溃。我们将问题缩小到UIImagePickerController。 但它只是在连接到仪器时崩溃了!
为了缩小问题范围,我们创建了一个只做一件事的裸骨测试应用程序:调出相机选择器,然后将其关闭。
重现的步骤是 1.单击按钮调出摄像头 2.单击取消关闭相机 3.重复40-50次。
在100多次重复后,在设备上运行没有问题 连接到仪器后,它会在40-50次重复后可靠地崩溃。
Tester应用程序有一个视图,它有一个UIButton内部视图控制器。 单击按钮时,它会从视图控制器中显示UIImagePickerController,如下所示:
-(IBAction)buttonClicked:(id)sender
{
imagePicker = [[UIImagePickerController alloc] init];
imagePicker.delegate = self;
imagePicker.modalPresentationStyle = UIModalPresentationFullScreen;
imagePicker.sourceType = UIImagePickerControllerSourceTypeCamera;
imagePicker.showsCameraControls = TRUE;
[self presentViewController:imagePicker animated:YES completion:^{}];
}
这是视图控制器的声明:
@interface ViewController : UIViewController<UINavigationControllerDelegate,UIImagePickerControllerDelegate>
{
UIImagePickerController *imagePicker;
}
启动UIImagePickerController后,只需按“取消”按钮退出UIImagePickerController,委托方法如下所示:
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
[self dismissViewControllerAnimated:YES completion:^{
NSLog(@"Cancel Picker");
}];
}
任何帮助将不胜感激。