iphone actualizar ipad - ¿Cómo podemos detectar mediante programación qué versión de iOS se está ejecutando el dispositivo?





5 Answers

Actualizar

Desde iOS 8 podemos usar el nuevo método NSProcessInfo en NSProcessInfo

   NSOperatingSystemVersion ios8_0_1 = (NSOperatingSystemVersion){8, 0, 1};
   if ([[NSProcessInfo processInfo] isOperatingSystemAtLeastVersion:ios8_0_1]) {
      // iOS 8.0.1 and above logic
   } else {
      // iOS 8.0.0 and below logic
   }

Tenga en cuenta que esto se bloqueará en iOS 7, ya que la API no existía antes de iOS 8. Si está soportando iOS 7 o inferior, puede realizar la comprobación de forma segura con

if ([NSProcessInfo instancesRespondToSelector:@selector(isOperatingSystemAtLeastVersion:)]) {
  // conditionally check for any version >= iOS 8 using 'isOperatingSystemAtLeastVersion'
} else {
  // we're on iOS 7 or below
}

Respuesta original iOS <8

En aras de la integridad, aquí hay un enfoque alternativo propuesto por Apple en la Guía de transición de la interfaz de usuario de iOS 7 , que consiste en verificar la versión de Foundation Framework.

if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_6_1) {
   // Load resources for iOS 6.1 or earlier
} else {
   // Load resources for iOS 7 or later
}
11 como no

Esta pregunta ya tiene una respuesta aquí:

Quiero verificar si el usuario está ejecutando la aplicación en iOS con menos de 5.0 y mostrar una etiqueta en la aplicación.

¿Cómo detecto qué iOS se está ejecutando en el dispositivo del usuario mediante programación?

¡Gracias!




[[UIDevice currentDevice] systemVersion]



[[[UIDevice currentDevice] systemVersion] floatValue]



Para obtener información más específica sobre el número de versión con versiones principales y secundarias separadas:

NSString* versionString = [UIDevice currentDevice].systemVersion;
NSArray* vN = [versionString componentsSeparatedByString:@"."];

La matriz vN contendrá las versiones principales y secundarias como cadenas, pero si desea hacer comparaciones, los números de versión deben almacenarse como números (ints). Puede agregar este código para almacenarlos en la C-array * versionNumbers :

int versionNumbers[vN.count];
for (int i = 0; i < sizeof(versionNumbers)/sizeof(versionNumbers[0]); i++)
    versionNumbers[i] = [[vN objectAtIndex:i] integerValue];

* Arrays C utilizados aquí para una sintaxis más concisa.




Una simple comprobación de la versión de iOS inferior a 5 (todas las versiones):

if([[[UIDevice currentDevice] systemVersion] integerValue] < 5){
        // do something
};



Related