투케이2K

145. (Objective-C/objc) UIApplicationState 사용해 애플리케이션 라이프 사이클 상태 확인 - applicationState 본문

Objective-C

145. (Objective-C/objc) UIApplicationState 사용해 애플리케이션 라이프 사이클 상태 확인 - applicationState

투케이2K 2024. 5. 15. 08:35

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : OBJECTIVE-C

 

[소스 코드]

// ------------------------------------------------------------------------------
// MARK: - [헤더 파일에 정의 없이 : void 메소드 구현]
// ------------------------------------------------------------------------------
- (void)testMain {
    [S_Log _D_WithC_:[NSString stringWithFormat:@"%s", __FILE__]
            M_:[NSString stringWithFormat:@"%s :: %d", __FUNCTION__, __LINE__]
            description:@"테스트 함수 시작 실시" data:nil];

    /*
     ------------------------------------
     [요약 설명]
     ------------------------------------
     1. applicationState 값을 사용해 앱 라이프 사이클 상태를 확인할 수 있습니다
     ------------------------------------
     */

    
    
    // [try catch 구문 정의 실시]
    @try {
        
        // ---------------------------------------------
        // [로직 처리 실시]
        // ---------------------------------------------
        //*
        dispatch_async(dispatch_get_main_queue(), ^{
            
            UIApplicationState state = [[UIApplication sharedApplication] applicationState];
            
            if (state == UIApplicationStateBackground){
                [S_Log _D_WithC_:[NSString stringWithFormat:@"%s", __FILE__]
                        M_:[NSString stringWithFormat:@"%s :: %d", __FUNCTION__, __LINE__]
                        description:@"Application :: UIApplicationStateBackground" data:nil];
            }
            else if(state == UIApplicationStateInactive) {
                [S_Log _D_WithC_:[NSString stringWithFormat:@"%s", __FILE__]
                        M_:[NSString stringWithFormat:@"%s :: %d", __FUNCTION__, __LINE__]
                        description:@"Application :: UIApplicationStateInactive" data:nil];
            }
            else if (state == UIApplicationStateActive) {
                [S_Log _D_WithC_:[NSString stringWithFormat:@"%s", __FILE__]
                        M_:[NSString stringWithFormat:@"%s :: %d", __FUNCTION__, __LINE__]
                        description:@"Application :: UIApplicationStateActive" data:nil];
            }
            else {
                [S_Log _D_WithC_:[NSString stringWithFormat:@"%s", __FILE__]
                        M_:[NSString stringWithFormat:@"%s :: %d", __FUNCTION__, __LINE__]
                        description:@"Application :: ELSE" data:nil];
            }
        });
        // */

    }
    @catch (NSException *exception) {
        NSLog(@"\n[NSException : 예외 상황 발생] : %s\n", exception.description.UTF8String);
    }
}
 

[결과 출력]

 

 

반응형
Comments