Я использую UIImagePickerController
в приложении Unity. Он иногда зависает, когда пользователь нажимает «done». Это происходит чаще всего на 3GS - примерно каждый третий раз - но у меня также была случайная заморозка на iPhone 5. Эта ошибка появляется в iOS с 4.3 до 7.0. Я не смог определить, какие факторы коррелируют с замораживанием. Я не получаю предупреждение о памяти, когда получаю это замораживание.UIImagePickerController иногда замерзает
В журнале нет ошибок, нет crashlog. Приложение продолжает работать позади UIImagePickerController
как обычно. На консоли есть много сообщений, вроде «deny file-write-data/private/var/mobile/Media/PhotoData», но все они могут появляться как при замораживании, так и при работе хорошо.
Вот как я показываю сборщика:
- (void)showPicker:(UIImagePickerControllerSourceType)type
{
imgPicker = [[[CustomPhotoPicker alloc] init] autorelease];
imgPicker.delegate = self;
imgPicker.sourceType = type;
imgPicker.allowsEditing = _pickerAllowsEditing;
// wrap and show the modal
[self showViewControllerModallyInWrapper:imgPicker];
}
И here're методов делегата:
- (void)imagePickerController:(UIImagePickerController*)imgPicker didFinishPickingMediaWithInfo:(NSDictionary*)info
{
NSLog(@"imagePickerController didFinishPickingMediaWithInfo");
// If the freeze is present, this method isn't called
}
- (void)imagePickerController:(UIImagePickerController *)imgPicker
didFinishPickingImage:(UIImage *)image
editingInfo:(NSDictionary *)editingInfo
{
NSLog(@"imagePickerController didFinishPickingImage");
// Tried to use deprecated callback. If the freeze is present, this method isn't called either.
}
я бы решить, что это ошибка внутри UIImagePickerController
, но ни один из разработчиков IOS, что не используйте Unity, когда-либо сталкивающееся с этой проблемой, и я бы предположил, что такая ошибка уже будет исправлена, если она присутствует в 4.3.