Jia*_*aqi 5 crash uiimagepickercontroller ios unrecognized-selector
我正在使用xcode 5.1并在ios7.1和7.0.2上测试了代码.该应用程序在设备上的两种情况下与UIImagePickerController崩溃:
1)当allowsEditing设置为YES时,在我裁剪图片并按"选择"后,一旦它返回到我自己的视图,应用程序崩溃
2)在里面UIImagePickerController,当我从照片列表返回到相册列表并且我在照片列表的底部时,它崩溃了(无论allowsEditing是否是).请注意,如果我滚动照片列表,它不会崩溃.
这是我的代码:
- (IBAction)photoPickPressed:(id)sender {
if ([self isPhotoLibraryAvailable]) {
self.imagePicker = [[UIImagePickerController alloc] init];
self.imagePicker.delegate = self;
self.imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
self.imagePicker.allowsEditing = YES;
NSString *requiredMediaType = (__bridge NSString*)kUTTypeImage;
self.imagePicker.mediaTypes = [[NSArray alloc] initWithObjects:requiredMediaType, nil];
[self presentViewController:self.imagePicker animated:YES completion:nil];
}
}
#pragma mark - image picker delegates
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
[picker dismissViewControllerAnimated:YES completion:^(){
NSLog(@"finished image picking");
});
}
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{
[picker dismissViewControllerAnimated:YES completion:nil];
}
Run Code Online (Sandbox Code Playgroud)
崩溃消息是
*由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:'* - [NSProxy doesNotRecognizeSelector:scrollViewDidScroll:]调用!'
注意:即使我设置为YES,如果我使用相机也不会崩溃allowsEditing.它也只能在真实设备上崩溃,而不是在模拟器上崩溃.
只是为了澄清(也许是不相关的),最初我将imagePicker声明为
UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
Run Code Online (Sandbox Code Playgroud)
,它崩溃了.所以我搜索了很多,并且帖子说控制器可能被回收,并建议在类定义中声明它.所以现在我在我的班级声明中宣布:
@property (strong, nonatomic) UIImagePickerController *imagePicker;
Run Code Online (Sandbox Code Playgroud)
提前致谢.
更新:我甚至试图将imagePickerController的调用放到我的应用程序的根视图中,它仍然会崩溃同样的消息.我不应该加载任何可滚动的视图.
经过几个小时的调查和试用,我确认这是由集成到应用程序的第三方框架引起的:UIImagePickerController如果我链接该框架,即使那个空应用程序也会崩溃。
感谢您的帮助!