0
我想識別iPad視網膜是否有我的應用程序,然後改變我的代碼中的東西。直到現在,我從互聯網上有這個模型地圖,我也找到了iPad Pro。iPad Retina模型識別與快速
public enum Model : String {
case simulator = "simulator/sandbox",
iPod1 = "iPod 1",
iPod2 = "iPod 2",
iPod3 = "iPod 3",
iPod4 = "iPod 4",
iPod5 = "iPod 5",
iPad2 = "iPad 2",
iPad3 = "iPad 3",
iPad4 = "iPad 4",
iPhone4 = "iPhone 4",
iPhone4S = "iPhone 4S",
iPhone5 = "iPhone 5",
iPhone5S = "iPhone 5S",
iPhone5C = "iPhone 5C",
iPadMini1 = "iPad Mini 1",
iPadMini2 = "iPad Mini 2",
iPadMini3 = "iPad Mini 3",
iPadAir1 = "iPad Air 1",
iPadAir2 = "iPad Air 2",
iPhone6 = "iPhone 6",
iPhone6plus = "iPhone 6 Plus",
iPhone6S = "iPhone 6S",
iPhone6Splus = "iPhone 6S Plus",
iPadPro = "iPad Pro",
iPadRetina = "iPad Retina",
unrecognized = "?unrecognized?"
}
public extension UIDevice {
public var type: Model {
var systemInfo = utsname()
uname(&systemInfo)
let modelCode = withUnsafeMutablePointer(&systemInfo.machine) {
ptr in String.fromCString(UnsafePointer<CChar>(ptr))
}
var modelMap : [ String : Model ] = [
"i386" : .simulator,
"x86_64" : .simulator,
"iPod1,1" : .iPod1,
"iPod2,1" : .iPod2,
"iPod3,1" : .iPod3,
"iPod4,1" : .iPod4,
"iPod5,1" : .iPod5,
"iPad2,1" : .iPad2,
"iPad2,2" : .iPad2,
"iPad2,3" : .iPad2,
"iPad2,4" : .iPad2,
"iPad2,5" : .iPadMini1,
"iPad2,6" : .iPadMini1,
"iPad2,7" : .iPadMini1,
"iPhone3,1" : .iPhone4,
"iPhone3,2" : .iPhone4,
"iPhone3,3" : .iPhone4,
"iPhone4,1" : .iPhone4S,
"iPhone5,1" : .iPhone5,
"iPhone5,2" : .iPhone5,
"iPhone5,3" : .iPhone5C,
"iPhone5,4" : .iPhone5C,
"iPad3,1" : .iPad3,
"iPad3,2" : .iPad3,
"iPad3,3" : .iPad3,
"iPad3,4" : .iPad4,
"iPad3,5" : .iPad4,
"iPad3,6" : .iPad4,
"iPhone6,1" : .iPhone5S,
"iPhone6,2" : .iPhone5S,
"iPad4,1" : .iPadAir1,
"iPad4,2" : .iPadAir2,
"iPad4,4" : .iPadMini2,
"iPad4,5" : .iPadMini2,
"iPad4,6" : .iPadMini2,
"iPad4,7" : .iPadMini3,
"iPad4,8" : .iPadMini3,
"iPad4,9" : .iPadMini3,
"iPhone7,1" : .iPhone6plus,
"iPhone7,2" : .iPhone6,
"iPhone8,1" : .iPhone6S,
"iPhone8,2" : .iPhone6Splus,
"iPad6,3" : .iPadPro,
"iPad6,4" : .iPadPro,
"iPad6,7" : .iPadPro,
"iPad6,8" : .iPadPro
]
if let model = modelMap[String.fromCString(modelCode!)!] {
return model
}
return Model.unrecognized
}
}
而且我檢查出該用戶有這個簡單的情況下,撥碼開關的
switch UIDevice().type {
case .iPhone4S:
print("iphone4s")
case .iPhone5:
print("iphone5")
case .iPadAir2:
print("mos def im an ipad air 2")
case .iPadPro:
print("am i an ipad Pro?")
default:
print("i'm a pretty little simulator")
}
模型所以我的問題是所有這些 首先,因爲我沒有一個iPad臨,是代碼正確嗎? 最後,我該怎麼做,所以我可以認出ipad Retina?
非常感謝!
您可以輕鬆搜索網頁以找出哪些模型是視網膜,哪些不是 –
以下是一個重要問題:您爲什麼需要了解具體模型?這只是爲了獲取信息,或者您的應用程序的代碼是否根據模型做了不同的事情? – rmaddy
順便說一句 - 你應該看到http://stackoverflow.com/questions/33493800/how-to-get-the-iphone-type-from-simulator-ios然後你可以在模擬器中測試你的代碼。 – rmaddy