본문 바로가기
iOS/설명

[iOS] application(_:open:options:) 의 return 값은 어디서 사용되는가?

by Sky Titan 2022. 6. 25.
728x90
 

Apple Developer Documentation

 

developer.apple.com

application(_:open:options:)

  • delegate에게 URL로 이루어진 리소스를 열 것을 요청하고, 런치 옵션 dictionary를 제공한다.
  • URL을 통해 application으로 진입할 때 호출된다.
  • 만약 application(_:willFinishLaunchingWithOptions:) 와 application(_:didFinishLaunchingWithOptions:) 메서드 둘 다 false를 반환한다면 호출되지 않는다.
    • 즉 하나라도 true를 반환한다면 호출된다.
  • 만약 앱이 background 혹은 suspended 상태일 때 URL이 도착한다면, 시스템은 앱을 foreground로 옮겨서 이 메서드를 호출한다.
  • 대응되는 Notification은 없음

 

application(_:open:options:) 의 return 값은 어디서 사용되는가?

 이 콜백을 공부하다가, 그렇다면 해당 메서드의 return값을 어디에 쓸지가 궁금해졌다.

 우선 return 값의 애플 가이드 정의는 아래와 같다.

true
 if the delegate successfully handled the request or 
false
 if the attempt to open the URL resource failed.

delegate가 해당 request를 성공적으로 처리하면 true,
아니면 false를 반환한다.

 앱에서 해당 URL을 처리할 수 있다면 true, 아니면 false를 반환하라는 건데,

 하지만 정작 값이 어디서 어떻게 쓰이는 지는 적혀있지 않다.

 

 여러 레퍼런스들을 찾아다녀본 결과, 어떤 곳에서는 외부에서 UIApplication.shared.open()에서 해당 URL을 열 수 있는 지를 판단할 때의 boolean값을 결정한다는 말도 있었지만 이것도 사실이 아니라는 것 같다.

 결론은 반환 값이 UIApplication에 직접 눈에 띄는 행동의 차이를 가져오진 않는 것 같고, AppDelegate를 sub classing해서 사용할 때 super class의 값을 핸들링할 필요가 있을 때 사용한다 정도인 것 같다.

 

728x90

'iOS > 설명' 카테고리의 다른 글

[iOS] DispatchGroup  (0) 2022.07.05
[iOS] CALayer mask  (0) 2022.07.02
[iOS] 상황별 app life cycle 메서드 호출 순서  (0) 2022.06.06
[iOS] 앱 실행 시 UI Restoration Process  (0) 2022.06.06
[iOS] App launch Sequence  (0) 2022.06.06

댓글