공부

[TIL] UIImagePickerController.isSourceTypeAvailable

Zedd0202 2023. 10. 6. 17:01
반응형

 

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를 리턴해야하는게 아닌지.. 

 

구글에 찾아보니 역시나 나랑 똑같은 생각을 한 사람이 있었음..

 

why does UIImagePickerController.isSourceTypeAvailable(.camera) return true when using the simulator

why does UIImagePickerController.isSourceTypeAvailable(.camera) return true when using the simulator? This causes the simulator to crash when trying to access the camera.

stackoverflow.com

코멘트 에서는 intel 맥에서는 false로 나오고 애플 실리콘 맥에서는 true로 나온다고 한다..?!

 

그리고 한번도 시뮬레이터에서 카메라를 안띄워봤던 것 같은데...(기억이 안남)

let picker = UIImagePickerController()
picker.sourceType = .camera
self.present(picker, animated: true)

위와 같이 하면 Simulator에서도  카메라가 뜬다 

요런식으로 뜨기만 하고 카메라 버튼같은건 안눌린다. 

 

return : 디바이스가 지정된 source type을 지원하면 true, 지정된 source type을 사용할 수 없으면 false


그렇다면 대충 지원한다고 볼 수 있으니
true인 것인가..

 

너무 소소하지만 나같이 생각한 사람이 한명이라도 있겠지..하고 써봅니다 데헷

반응형