Tôi có một ứng dụng cho phép bạn chụp ảnh bằng camera iphone. Mọi thứ hoạt động như một sự quyến rũ nhưng khi thử nghiệm trên thiết bị mới đã xảy ra không có đủ bộ nhớ, ứng dụng máy ảnh không loại bỏ. Vì vậy, về cơ bản tôi mở bộ chọn hình ảnh với máy ảnh nguồn, tôi nhận được một cửa sổ bật lên có nội dung "Không đủ bộ nhớ để chụp ảnh ..." và sau đó khi tôi nhấn OK, tôi đang ở ứng dụng Máy ảnh, với màn trập đóng, và cả hai nút "chụp ảnh" và "hủy" đều chuyển sang màu xám. Từ thời điểm này, điều duy nhất tôi có thể làm là giết ứng dụng vì không có cách nào rời khỏi màn hình này.Ứng dụng Máy ảnh không loại bỏ khi "Không đủ dung lượng lưu trữ ..." trên iPhone
Trong mã của tôi tôi gọi là máy ảnh với một cái gì đó như:
UIImagePickerController * photoPicker= [[UIImagePickerController alloc] init];
photoPicker.delegate = self;
photoPicker.sourceType = UIImagePickerControllerSourceTypeCamera;
if ([UIImagePickerController isSourceTypeAvailable:photoPicker.sourceType]) {
[self presentModalViewController:photoPicker animated:YES];
}
Đối tượng mà gọi đây là tất nhiên một UIImagePickerControllerDelegate và tôi thực hiện cả hai phương pháp đại biểu (cả đáp ứng một cách chính xác để thành công và hủy bỏ các sự kiện):
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info;
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker;
Hành vi "không có không gian trống" này không rơi vào bất kỳ phương pháp đại biểu nào, vì vậy tôi không thể loại bỏ ứng dụng máy ảnh theo cách có lập trình.
Mọi suy nghĩ?
EDIT:
Khi cố gắng để chạy các ứng dụng trong mô phỏng nơi Máy ảnh không có sẵn, tôi nhận thấy App đâm vì nguồn đó là không có. Tôi phát hiện ra rằng chỉ cần gán một sourceType không có sẵn cho các photoPicker, thậm chí trước khi gọi bộ điều khiển, sẽ sụp đổ các ứng dụng, vì vậy tôi đã thay đổi mã như sau:
UIImagePickerController * photoPicker= [[UIImagePickerController alloc] init];
photoPicker.delegate = self;
if ([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) {
photoPicker.sourceType = UIImagePickerControllerSourceTypeCamera;
}else{
return;
}
[self presentModalViewController:photoPicker animated:YES];
này vẫn không khắc phục vấn đề của tôi, nhưng đó là một phát hiện thú vị.
thử 'isSourceTypeAvailable' trước khi trình bày Bộ chọn. Có lẽ táo nghĩ về vụ này. –
Tôi thực sự đã có 'isSourceTypeAvailable' trong mã của tôi như là một điều kiện để trình bày các photoPicker, tôi chỉ tước nó để hiển thị một đoạn mã đơn giản hơn. Cảm ơn sự đóng góp dù sao! Tôi sẽ chỉnh sửa bài đăng gốc với điều đó. – manecosta
Trên thực tế tôi chỉ phát hiện ra rằng việc kiểm tra 'isSourceTypeAvailable' trước khi trình bày photoPicker không phải là một nơi tốt để làm như vậy, như thể nguồn không có sẵn, nó đổ vỡ ngay tại phân bổ' .sourceType'. Điều này vẫn không giúp được vấn đề của tôi. Tôi sẽ cập nhật bài đăng gốc của mình mặc dù phản ánh phát hiện này. – manecosta