투케이2K

216. (ios/swift) [유틸 파일] 실제 디바이스 기기 모델 이름 명칭 확인 (device model name) 본문

IOS

216. (ios/swift) [유틸 파일] 실제 디바이스 기기 모델 이름 명칭 확인 (device model name)

투케이2K 2022. 10. 7. 09:54

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : SWIFT

 

[소스 코드]

    // MARK: - [디바이스 기기 모델 이름 확인]
    func getDeviceModelName() -> String {
        
        /*
        // -----------------------------------------
        [getDeviceModelName 메소드 설명]
        // -----------------------------------------
        1. 디바이스 기기 모델 이름 확인 실시
        // -----------------------------------------
        2. 호출 방법 :
         
         C_Util().getDeviceModelName()
        // -----------------------------------------
        3. 리턴 데이터 :
         
         iPhone XS / iPhone 11
        // -----------------------------------------
        */
        
        
        // [초기 리턴 데이터 변수 선언 실시]
        var modelName = ""
        
        // [1]. 시뮬레이터 체크 수행 실시
        modelName = ProcessInfo.processInfo.environment["SIMULATOR_DEVICE_NAME"] ?? ""
        if modelName != nil && modelName.isEmpty == false && modelName.count>0 {
            print("")
            print("====================================")
            print("[C_Util >> getDeviceModelName() :: 디바이스 시뮬레이터]")
            print("-------------------------------")
            print("deviceModelName :: \(modelName)")
            print("====================================")
            print("")
            
            // [리턴 반환 실시]
            return modelName
        }
        
        // [2]. 실제 디바이스 체크 수행 실시
        let device = UIDevice.current
        let selName = "_\("deviceInfo")ForKey:"
        let selector = NSSelectorFromString(selName)
        
        if device.responds(to: selector) { // [옵셔널 체크 실시]
            modelName = String(describing: device.perform(selector, with: "marketing-name").takeRetainedValue())
        }
        
        // [로그 출력 실시]
        print("")
        print("====================================")
        print("[C_Util >> getDeviceModelName() :: 디바이스 기기 모델 명칭 확인]")
        print("-------------------------------")
        print("return :: \(modelName)")
        print("====================================")
        print("")
        
        // [리턴 반환 실시]
        return modelName
    }
 

[결과 출력]


 
반응형
Comments