[TIL] UIImagePickerController.isSourceTypeAvailable
UIImagePickerController를 쓸 일도 없고.. 안쓴지 너무 오래되어서 기억도 잘 안나긴 하는데
Simulator는 카메라가 없으니까 Simulator에서 isSourceTypeAvailable(.camera)는 false야! < 그냥 내 머리가 이렇게 알고있었음;;
어쩌다가 회사 프로젝트에서 관련해서 볼 일이 생겼는데, 이것저것 실험해보다가
UIImagePickerController.isSourceTypeAvailable(.camera)
위 코드를 Simulator에서 실행했더니 true가 나오는 것이다!! (당연히 false가 나올거라고 생각했음)
우선 isSourceTypeAvailable 공식문서를 살펴보기로 했다.
# isSourceTypeAvailable
정의 : 디바이스가 지정된 source type을 사용하여 미디어 선택(picking media)을 지원하는지 여부를 쿼리
return : 디바이스가 지정된 source type을 지원하면 true, 지정된 source type을 사용할 수 없으면 false
discussion : 사용자 라이브러리에서 이미지를 선택하려고 하는데, 라이브러리가 비어있는 경우 false / 카메라가 이미 사용중이면 false
discussion에 있는 내용은 처음 알았네! 근데.. 아무리 읽어봐도 Simulator에서 false를 리턴해야하는게 아닌지..
구글에 찾아보니 역시나 나랑 똑같은 생각을 한 사람이 있었음..
이 코멘트 에서는 intel 맥에서는 false로 나오고 애플 실리콘 맥에서는 true로 나온다고 한다..?!
그리고 한번도 시뮬레이터에서 카메라를 안띄워봤던 것 같은데...(기억이 안남)
let picker = UIImagePickerController()
picker.sourceType = .camera
self.present(picker, animated: true)
위와 같이 하면 Simulator에서도 카메라가 뜬다
요런식으로 뜨기만 하고 카메라 버튼같은건 안눌린다.
return : 디바이스가 지정된 source type을 지원하면 true, 지정된 source type을 사용할 수 없으면 false
그렇다면 대충 지원한다고 볼 수 있으니 true인 것인가..
너무 소소하지만 나같이 생각한 사람이 한명이라도 있겠지..하고 써봅니다 데헷