iPad Retinaに自分のアプリがあるかどうかを確認してから、自分のコードで何かを変更しようとしています。今まで私はインターネットからのこのモデルマップを持っていて、また、私はfro iPad Proを見つけました。iPad Retina model recognition with swift
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
}
}
そして、私はiPadのプロを持っていけないので、だから私の質問は、すべてのこれらの まず、あるユーザーは、この単純なケースのスイッチコードで
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 Retinaを認識できますか?
ありがとうございます!
ウェブを検索して網膜であるかどうかを調べることができます。 –
ここに重要な質問があります。なぜ特定のモデルを知る必要がありますか?これは単なる情報用か、アプリのコードはモデルに基づいて異なるのですか? – rmaddy
BTW - http://stackoverflow.com/questions/33493800/how-to-get-the-iphone-type-from-simulator-iosが表示され、シミュレータでコードをテストできます。 – rmaddy