💡 UIApplication.shared 객체의 perform 메서드를 사용하여 NSXPCConnection.suspend() 메서드를 호출하여 현재 연결된 객체의 작업을 일시 중단하고 XPC 서비스를 대기 상태로 전환합니다.
1.2. 해당 주요 기술 확인
[ 주요 기술 확인하기 ]
💡 UIApplication이란?
- iOS 애플리케이션의 주요 객체 중 하나로 애플리케이션의 실행 및 생명주기 관리를 담당합니다.
💡 UIApplication.share 이란?
- iOS 앱에서 사용자가 앱을 공유할 수 있도록 하는 기능입니다. 이 기능을 사용하면 사용자가 앱을 다른 사람과 공유할 수 있는 다양한 방법을 제공할 수 있습니다. 주요한 기능으로는 사용자는 앱에서 공유 버튼을 누르면, 다른 앱이나 메시지, 이메일 등을 통해 앱을 공유할 수 있습니다. 💡NSXPCConnection.suspend 란?
- NSXPCConnection.suspend()은 현재 연결된 객체의 작업을 일시 중단하는 메서드입니다. 이 메서드를 호출하면 XPC 연결 객체가 일시 중단됩니다. 따라서 XPC 서비스가 대기 상태로 전환됩니다.
/**
* 앱 백그라운드로 이동처리 함수
*/funcappMinimization() {
print("앱 백그라운드로 이동")
let selector =NSSelectorFromString("suspend")
let sharedUIApplication =UIApplication.perform(NSSelectorFromString("sharedApplication"))?.takeUnretainedValue()
_= sharedUIApplication?.perform(selector, with: nil)
}
[ 소스코드 설명 ]
- UIApplication 클래스를 사용하여 현재 실행 중인 앱을 백그라운드로 이동시키는 역할을 합니다.
1. NSSelectorFromString() 함수를 사용하여 suspend 메서드를 실행합니다. 2. UIApplication의 sharedApplication() 메서드를 호출하여 현재 실행 중인 앱의 인스턴스를 가져옵니다. 3. perform() 메서드를 사용하여 suspend 메서드를 실행합니다. 4. 이를 통해 앱이 백그라운드로 이동됩니다.
2.2. 해당 주요기술 확인
💡 NSSelectorFromString("suspend") - 문자열 "suspend"를 메서드 이름으로 갖는 셀렉터 객체를 생성합니다. 이 셀렉터 객체는 Objective-C 프로그래밍에서 사용됩니다.
💡UIApplication.perform().takeUnretainedValue()
- Core Foundation 객체를 Objective-C 객체로 캐스팅할 때 사용하는 메서드입니다.
💡 NSSelectorFromString("sharedApplication")
- UIApplication의 sharedApplication() 메서드를 호출하는 역할을 수행합니다.