iOS
[Swift4.2] imagePickerController 인스턴스 메소드 내 UIImagePickerControllerEditedImage 에러
Jundol
2019. 1. 14. 11:32
꼼꼼한 재은씨의 스위프트 실전편
Chapter01 기본 기능 다루기: 메모장 앱 제작
이미지 피커 컨트롤러에서 이미지가 선택되었을 때 호출되는 델리게이트 메소드에서
info[UIImagePickerControllerEditedImage] 이부분이 에러발생한다.
Swift4.2에서는 책에 쓰인 4.0과는 약간의 수정이 있기 때문에 고쳐서 사용해야한다.
기존 예제 소스코드
1 2 3 4 5 6 7 8 | // 이미지 선택을 완료했을 때 호출되는 메소드 func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { // 선택된 이미지를 미리보기에 표시한다. self.preview.image = info[UIImagePickerControllerEditedImage] as? UIImage // 이미지 피커 컨트롤러를 닫는다. picker.dismiss(animated: false) } | cs |
변경 소스코드
1 2 3 4 5 6 | private func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) { if let editedImage = info[.editedImage] as? UIImage{ self.preview.image = editedImage picker.dismiss(animated: false) } } | cs |
[error] if let 구문을 사용해서 info[.editedImage] 에서 editedImage 상수에 할당해서 이미지를 불러온다.
[warning] imagePickerController를 private 접근제한자로 감싸줘야한다.