Zapewniam, że szukałem odpowiedzi w SO na moje pytanie, ale żadna z nich nie była pomocna. Tutaj mam prosty kod, który powinien przedstawiać UIImagePickerController
w a UIPopoverController
:
-(void)takePicture:(id)sender{
UIImagePickerController *picker=[[UIImagePickerController alloc] init];
picker.delegate=self;
picker.sourceType=UIImagePickerControllerSourceTypeCamera;
picker.allowsEditing=YES;
UIPopoverController *poc=[[UIPopoverController alloc]
initWithContentViewController:picker];
[poc presentPopoverFromBarButtonItem:bbItem
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:NO];
}
Teraz już od pierwszego razu [UIPopoveController dealloc]
dotarłem podczas ... błędu i awarii programu. Nie robię żadnych zachowań, zwolnień ani autoreleasów zgodnie z ARC. Czy należy zwrócić szczególną uwagę na UIPopoverControllers
korzyści z ARC?
źródło
Kiedy funkcja kończy działanie, nie ma innego odniesienia do kontrolera popover, więc jest on zwalniany zbyt wcześnie.
Zamiast tego spróbuj dodać go jako członka swojej klasy.
Tim
źródło
Dodając odpowiedź @ phix23, utwórz właściwość * poc w następujący sposób:
a potem zmienić
dla
źródło