2016-05-13 2 views
0

Я пытаюсь узнать, есть ли у iPad Retina приложение, а затем что-то изменить в моем коде. До сих пор у меня есть эта модельная карта из Интернета, а также я нашел 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 Pro, является код правильный? И, наконец, что я должен делать, я могу узнать и ipad Retina ???

Большое спасибо!

+0

Вы можете легко найти в Интернете, какие модели являются сетчаткой, а какие нет –

+0

Вот важный вопрос: для чего вам нужна конкретная модель? Это только информация или код вашего приложения делает разные вещи на основе модели? – rmaddy

+0

BTW - вы должны увидеть http://stackoverflow.com/questions/33493800/how-to-get-the-iphone-type-from-simulator-ios, после чего вы можете проверить свой код в симуляторе. – rmaddy

ответ

1

Не кодируйте эти условия самостоятельно. Используйте этот модуль, чтобы определить, на каком устройстве работает ваше приложение, и если Apple выпускает другой тип устройства, просто обновите его, остальное возьмет на себя.

+0

о, я не знал об этом! Большое спасибо !! : D –

Смежные вопросы