Ứng dụng mà tôi đang thực hiện chạy trên cả iPhone & iPad. Một trong những chức năng mà ứng dụng có, là chụp ảnh từ máy ảnh. Tôi đang sử dụng UIImagePickerController cho chức năng này. Đây là khối mã của tôi;Ứng dụng bị đóng băng khi cố gắng trình bày camera sau trên iPad
self.imagePicker.sourceType = .camera
self.imagePicker.cameraCaptureMode = .photo
self.present(self.imagePicker, animated: true, completion: nil)
Ứng dụng hoạt động như được thiết kế trong iPhone bao giờ tôi chạy cùng một mã trên iPad mà ứng dụng bị treo. Vấn đề này chỉ xảy ra trong iPad nhưng chỉ dành cho camera phía sau. Nếu tôi chọn camera phía trước từ bộ chọn hình ảnh, ứng dụng sẽ khởi động camera, nhưng nó sẽ đóng băng khi tôi nhấn nút camera chuyển đổi.
Theo như tôi hiểu từ sự cố nhật ký xảy ra khi ứng dụng đang cố gắng vẽ máy ảnh.
Logs:
2016-12-20 20:10:33.708816 Ronin[681:148977] CGContextAddPath: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
Dec 20 20:10:33 Ronin[681] <Error>: CGContextAddPath: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
2016-12-20 20:10:33.708925 Ronin[681:148977] clip: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
Dec 20 20:10:33 Ronin[681] <Error>: clip: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
2016-12-20 20:10:33.708991 Ronin[681:148977] CGContextSetFillColorWithColor: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
Dec 20 20:10:33 Ronin[681] <Error>: CGContextSetFillColorWithColor: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
2016-12-20 20:10:33.709047 Ronin[681:148977] CGContextFillRects: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
Dec 20 20:10:33 Ronin[681] <Error>: CGContextFillRects: invalid context 0x0. If you want to see the backtrace, please set CG_CONTEXT_SHOW_BACKTRACE environmental variable.
iPad mà tôi đang sử dụng để thử nghiệm là: iPad Air 2 - iOS 10,2
EDIT
UIImagePickerController.isSourceTypeAvailable (.camera) mã khối trả về đúng cho trường hợp thử nghiệm của tôi. Tôi đã thêm điều khiển này nhưng chưa đề cập đến trước đây.
Ngoài ra tôi đã nhận thấy rằng khi ứng dụng bị đóng băng, mức tiêu thụ bộ nhớ bắt đầu tăng và ứng dụng cùng một điểm bị lỗi do sử dụng quá nhiều bộ nhớ.
Ngoài ra, tôi đã tạo một dự án trống và thực hiện phương pháp tương tự để chụp ảnh, hoạt động như được thiết kế trong dự án trống. Tại thời điểm này những gì tôi nghĩ là vấn đề này có thể có liên quan với một số thiết lập dự án.
EDIT - 2
tôi thêm breakpoint mang tính biểu tượng cho CGPostError, đây là stacktrace:
Nó có vẻ như bối cảnh hợp lệ gửi đến UIProgressView là lý do cho vấn đề này.
Mọi trợ giúp sẽ được đánh giá cao.
EDIT - 3
Như tôi đã đề cập trước khi tôi làm kiểm tra UIImagePickerController.isSourceTypeAvailable (.camera) trong khối mã của tôi, vấn đề không liên quan với tính sẵn sàng máy ảnh. Ngoài ra máy ảnh hoạt động như popover khi tôi trình bày nó một cách bình thường.
Bạn đang gọi mã của bạn trên chủ đề chính? Trong ảnh chụp màn hình theo dõi ngăn xếp của bạn, tôi không thấy dấu vết mã của bạn trên chuỗi chính. –
Có, tôi thực sự trình bày bộ chọn hình ảnh bằng nút điều hướng, nhấp vào @MihaiFratu –
Có thể là sự cố liên quan đến phiên bản iOS trên toàn hệ thống, có nghĩa là chương trình cơ sở iPad Air 2 iOS 10.2 có lỗi không? –