2014-11-10 36 views
5

Używam zwykłego UIImagePickerController do robienia zdjęć za pomocą kamery urządzenia. Poniżej znajduje się kod używam do tworzenia UIImagePickerController,iOS 8 UIImagePickerController zawiesza się na Zoom

self.imagePickerController = [[UIImagePickerController alloc] init]; 
self.imagePickerController.modalPresentationStyle = UIModalPresentationCurrentContext; 
self.imagePickerController.allowsEditing = NO; 
self.imagePickerController.sourceType = UIImagePickerControllerSourceTypeCamera; 
self.imagePickerController.cameraCaptureMode = UIImagePickerControllerCameraCaptureModePhoto; 
self.imagePickerController.cameraDevice = UIImagePickerControllerCameraDeviceRear; 
self.imagePickerController.delegate = self; 

i Poniżej znajduje się kod, który używam do wyświetlenia UIImagePickerController

[self presentViewController:self.imagePickerController animated:YES completion:nil]; 

Teraz, gdy UIImagePickerController zostanie przedstawiona, gdybym powiększyć aby przechwycić i wrócić do mojego kontrolera widoku, aplikacja nieregularnie się zawiesza przy użyciu BAD_ACCESS. Po edycji programu i niektóre debugowanie, widzę następujący błąd,

- [PLImagePickerCameraView didHideZoomSlider:]: Komunikat wysłany do dealokowane przykład 0x140109400

Wydaje się, że delegat suwak zoom nazywa się na zasadzie nieprzydzielona instancja. Ktoś inny zaobserwował to zachowanie? Używam pracy w iOS 8.1 i testuję ją na iPhone 5S. Poszukiwanie PLImagePickerCameraView nie daje wiele. Wszelkie spostrzeżenia będą naprawdę pomocne, zanim zdecyduję się na niestandardowy selektor.

+0

możliwy duplikat [Jak się dowiedzieć, co powoduje błąd didHideZoomSlider na IOS 8?] (Http://stackoverflow.com/questions/26844432/how-to-find-out-what-causes-a-didhidezoomslider -error-on-ios-8) – RyanJM

+1

@Priyank - Jak rozwiązałeś problem? –

+0

Dodawanie opóźnienia to jedyne możliwe rozwiązanie na razie. Nie chcę rozwijać mojej niestandardowej funkcjonalności aparatu. – Priyank

Odpowiedz

0

Doświadczyłem również awarii powiększenia UIImagePickerController. Dodanie opóźnienia naprawiło większość, ale nie wszystkie, awarii.

Główną przyczyną jest próba wywołania zwrotnego kontrolera do delegata po delegalizacji delegata. Skończyło się na wykonaniu subklasyzowanego UIImagePickerController, aby usunąć delegata widoku suwaka.

Możesz znaleźć przykładowy kod, który opublikowałem na similar question.

Powiązane problemy