Странная ошибка с UIPopoverController - PullRequest
1 голос
/ 26 марта 2012

Я пытаюсь использовать UIImagePickerController, чтобы получить фотографию от пользователей Фотографии на их iPhone / iPad. Этот код прекрасно работает для iPhone, но когда я запускаю его на iPad, отладчик выдает мне сообщение «Завершение приложения из-за необработанного исключения« NSGenericException », причина:« - [UIPopoverController dealloc] достигнут, пока всплывающее окно все еще видно ». Я очень плохо знаком с Objective-C, поэтому я не уверен, что вызвало это, я ничего не освобождаю и у меня включен ARC. Вот мой код: ViewController.m

#import "PhotoViewController.h"


@implementation PhotoViewController
@synthesize grabButton;
@synthesize image;
@synthesize imgPicker;

- (IBAction)grabImage {
    if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPad) {
        UIPopoverController *popover = [[UIPopoverController alloc] initWithContentViewController:imgPicker];
        [popover presentPopoverFromRect:self.image.bounds inView:self.image permittedArrowDirections:UIPopoverArrowDirectionAny animated:YES];

    } else {
        [self presentModalViewController:imgPicker animated:YES];
    }
}

- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)img editingInfo:(NSDictionary *)editInfo {
    image.image = img;
    [[picker parentViewController] dismissModalViewControllerAnimated:YES];
}

- (void)viewDidLoad
{
    self.imgPicker = [[UIImagePickerController alloc] init];
    self.imgPicker.allowsImageEditing = YES;
    self.imgPicker.delegate = self;
    self.imgPicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
    [super viewDidLoad];
    // Do any additional setup after loading the view from its nib.

}

1 Ответ

3 голосов
/ 26 марта 2012

UIPopover - уродливое лоскутное чудовище объекта.Это должно быть сильное свойство и iVar, чтобы гарантировать, что Dealloc не достигнут преждевременно.Добавьте это.

...