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 접근제한자로 감싸줘야한다.