func deviceName() -> String { var systemInfo = utsname() uname(&systemInfo) let internalName = withUnsafePointer(to: &systemInfo.machine) { ptr in String(cString: UnsafeRawPointer(ptr).assumingMemoryBound(to: CChar.self)) }

let dict: [String: String] = [
    // iPhone
    "iPhone1,1" : "iPhone",
    "iPhone1,2" : "iPhone 3G",
    "iPhone2,1" : "iPhone 3GS",
    "iPhone3,1" : "iPhone 4",
    "iPhone3,2" : "iPhone 4",
    "iPhone3,3" : "iPhone 4",
    "iPhone4,1" : "iPhone 4S",
    "iPhone5,1" : "iPhone 5",
    "iPhone5,2" : "iPhone 5",
    "iPhone5,3" : "iPhone 5c",
    "iPhone5,4" : "iPhone 5c",
    "iPhone6,1" : "iPhone 5s",
    "iPhone6,2" : "iPhone 5s",
    "iPhone7,2" : "iPhone 6",
    "iPhone7,1" : "iPhone 6 Plus",
    "iPhone8,1" : "iPhone 6s",
    "iPhone8,2" : "iPhone 6s Plus",
    "iPhone8,4" : "iPhone SE (1st generation)",
    "iPhone9,1" : "iPhone 7",
    "iPhone9,3" : "iPhone 7",
    "iPhone9,2" : "iPhone 7 Plus",
    "iPhone9,4" : "iPhone 7 Plus",
    "iPhone10,1" : "iPhone 8",
    "iPhone10,4" : "iPhone 8",
    "iPhone10,2" : "iPhone 8 Plus",
    "iPhone10,5" : "iPhone 8 Plus",
    "iPhone10,3" : "iPhone X",
    "iPhone10,6" : "iPhone X",
    "iPhone11,8" : "iPhone XR",
    "iPhone11,2" : "iPhone XS",
    "iPhone11,6" : "iPhone XS Max",
    "iPhone11,4" : "iPhone XS Max",
    "iPhone12,1" : "iPhone 11",
    "iPhone12,3" : "iPhone 11 Pro",
    "iPhone12,5" : "iPhone 11 Pro Max",
    "iPhone12,8" : "iPhone SE (2nd generation)",
    "iPhone13,1" : "iPhone 12 mini",
    "iPhone13,2" : "iPhone 12",
    "iPhone13,3" : "iPhone 12 Pro",
    "iPhone13,4" : "iPhone 12 Pro Max",
    "iPhone14,4" : "iPhone 13 mini",
    "iPhone14,5" : "iPhone 13",
    "iPhone14,2" : "iPhone 13 Pro",
    "iPhone14,3" : "iPhone 13 Pro Max",
    "iPhone14,6" : "iPhone SE (3rd generation)",
    "iPhone14,7" : "iPhone 14",
    "iPhone14,8" : "iPhone 14 Plus",
    "iPhone15,2" : "iPhone 14 Pro",
    "iPhone15,3" : "iPhone 14 Pro Max",
    // iPad
    "iPad1,1" : "iPad",
    "iPad2,1" : "iPad 2",
    "iPad2,2" : "iPad 2",
    "iPad2,3" : "iPad 2",
    "iPad2,4" : "iPad 2",
    "iPad3,1" : "iPad (3rd generation)",
    "iPad3,2" : "iPad (3rd generation)",
    "iPad3,3" : "iPad (3rd generation)",
    "iPad3,4" : "iPad (4th generation)",
    "iPad3,5" : "iPad (4th generation)",
    "iPad3,6" : "iPad (4th generation)",
    "iPad6,11" : "iPad (5th generation)",
    "iPad6,12" : "iPad (5th generation)",
    "iPad7,5" : "iPad (6th generation)",
    "iPad7,6" : "iPad (6th generation)",
    "iPad7,11" : "iPad (7th generation)",
    "iPad7,12" : "iPad (7th generation)",
    // iPad Air
    "iPad4,1" : "iPad Air",
    "iPad4,2" : "iPad Air",
    "iPad4,3" : "iPad Air",
    "iPad5,3" : "iPad Air 2",
    "iPad5,4" : "iPad Air 2",
    "iPad11,3" : "iPad Air (3rd generation)",
    "iPad11,4" : "iPad Air (3rd generation)",
    // iPad Pro
    "iPad6,7" : "iPad Pro (12.9-inch)",
    "iPad6,8" : "iPad Pro (12.9-inch)",
    "iPad6,3" : "iPad Pro (9.7-inch)",
    "iPad6,4" : "iPad Pro (9.7-inch)",
    "iPad7,1" : "iPad Pro (12.9-inch) (2nd generation)",
    "iPad7,2" : "iPad Pro (12.9-inch) (2nd generation)",
    "iPad7,3" : "iPad Pro (10.5-inch)",
    "iPad7,4" : "iPad Pro (10.5-inch)",
    "iPad8,1" : "iPad Pro (11-inch)",
    "iPad8,2" : "iPad Pro (11-inch)",
    "iPad8,3" : "iPad Pro (11-inch)",
    "iPad8,4" : "iPad Pro (11-inch)",
    "iPad8,5" : "iPad Pro (12.9-inch) (3rd generation)",
    "iPad8,6" : "iPad Pro (12.9-inch) (3rd generation)",
    "iPad8,7" : "iPad Pro (12.9-inch) (3rd generation)",
    "iPad8,8" : "iPad Pro (12.9-inch) (3rd generation)",
    "iPad8,9" : "iPad Pro (11-inch) (2nd generation)",
    "iPad8,10" : "iPad Pro (11-inch) (2nd generation)",
    "iPad8,11" : "iPad Pro (12.9-inch) (4th generation)",
    "iPad8,12" : "iPad Pro (12.9-inch) (4th generation)",
    // iPad mini
    "iPad2,5" : "iPad mini",
    "iPad2,6" : "iPad mini",
    "iPad2,7" : "iPad mini",
    "iPad4,4" : "iPad mini 2",
    "iPad4,5" : "iPad mini 2",
    "iPad4,6" : "iPad mini 2",
    "iPad4,7" : "iPad mini 3",
    "iPad4,8" : "iPad mini 3",
    "iPad4,9" : "iPad mini 3",
    "iPad5,1" : "iPad mini 4",
    "iPad5,2" : "iPad mini 4",
    "iPad11,1" : "iPad mini (5th generation)",
    "iPad11,2" : "iPad mini (5th generation)",
    //other
    "i386":"iPhone Simulator",
    "x86_64":"iPhone Simulator",
]
let model = dict[internalName] ?? internalName
return model

}

+ NSString deviceName struct utsname systemInfo; uname&systemInfo; NSString internalName = NSString stringWithCStringsystemInfomachine encodingNSUTF8StringEncoding; NSDictionary dict

原文地址: http://www.cveoy.top/t/topic/jbsu 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录