투케이2K

83. (Objective-C/objc) UIDevice deviceInfo 사용해 디바이스 기기 모델 명칭 및 종류 확인 실시 - device model name 본문

Objective-C

83. (Objective-C/objc) UIDevice deviceInfo 사용해 디바이스 기기 모델 명칭 및 종류 확인 실시 - device model name

투케이2K 2022. 9. 22. 08:42

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : OBJECTIVE-C

 

[소스 코드]

// MARK: - [헤더 파일에 정의 없이 : void 메소드 구현]
- (void)testMain {
    printf("\n");
    printf("==================================== \n");
    printf("[ViewController >> testMain() :: 테스트 메소드 수행] \n");
    printf("==================================== \n");
    printf("\n");
    
    
    /*
     ------------------------------------
     [요약 설명]
     ------------------------------------
     1. UIDevice currentDevice : 디바이스 기기 정보 및 설정 값을 확인할 수 있습니다
     ------------------------------------
     2. 필요 import :
     
     #import <sys/utsname.h>
     ------------------------------------
     */
    
    
    // [try catch 구문 정의 실시]
    @try {
        
        // [초기 변수 선언 실시]
        NSString *deviceName = @"";
        
        
        // [시뮬레이터 판단 실시]
        NSString *modelName = NSProcessInfo.processInfo.environment[@"SIMULATOR_DEVICE_NAME"];
        if (modelName.length > 0) {
            deviceName = modelName;
        }
        
        
        // [실제 디바이스 기기 판단 실시]
        UIDevice *device = [UIDevice currentDevice];
        NSString *selName = [NSString stringWithFormat:@"_%@ForKey:", @"deviceInfo"];
        SEL selector = NSSelectorFromString(selName);
        if ([device respondsToSelector:selector]) {
            #pragma clang diagnostic push
            #pragma clang diagnostic ignored "-Warc-performSelector-leaks"
            deviceName = [device performSelector:selector withObject:@"marketing-name"];
            #pragma clang diagnostic pop
        }
        
        
        // [로그 출력 실시]
        printf("\n");
        printf("==================================== \n");
        printf("[ViewController >> try :: 로직 처리 결과 확인] \n");
        printf("[deviceName :: %s] \n", deviceName.description.UTF8String);
        printf("==================================== \n");
        printf("\n");

    }
    @catch (NSException *exception) {
        printf("\n");
        printf("==================================== \n");
        printf("[ViewController >> catch :: 예외 상황 확인] \n");
        printf("[name :: %s] \n", exception.name.description.UTF8String);
        printf("[reason :: %s] \n", exception.reason.description.UTF8String);
        printf("==================================== \n");
        printf("\n");
    }
}
 

[결과 출력]

 

반응형
Comments