como - no puedo actualizar mi iphone 6




¿Cómo podemos detectar mediante programación qué versión de iOS se está ejecutando el dispositivo? (7)

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
}

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!


En MonoTouch:

Para obtener el uso de la versión Major:

UIDevice.CurrentDevice.SystemVersion.Split('.')[0]

Para uso en versiones menores:

UIDevice.CurrentDevice.SystemVersion.Split('.')[1]

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.


Sé que soy demasiado tarde para responder a esta pregunta. No estoy seguro de si mi método sigue funcionando en versiones de iOS bajo (<5.0):

NSString *platform = [UIDevice currentDevice].model;

NSLog(@"[UIDevice currentDevice].model: %@",platform);
NSLog(@"[UIDevice currentDevice].description: %@",[UIDevice currentDevice].description);
NSLog(@"[UIDevice currentDevice].localizedModel: %@",[UIDevice currentDevice].localizedModel);
NSLog(@"[UIDevice currentDevice].name: %@",[UIDevice currentDevice].name);
NSLog(@"[UIDevice currentDevice].systemVersion: %@",[UIDevice currentDevice].systemVersion);
NSLog(@"[UIDevice currentDevice].systemName: %@",[UIDevice currentDevice].systemName);

Puede obtener estos resultados:

[UIDevice currentDevice].model: iPhone
[UIDevice currentDevice].description: <UIDevice: 0x1cd75c70>
[UIDevice currentDevice].localizedModel: iPhone
[UIDevice currentDevice].name: Someones-iPhone002
[UIDevice currentDevice].systemVersion: 6.1.3
[UIDevice currentDevice].systemName: iPhone OS

[[UIDevice currentDevice] systemVersion];

o compruebe la versión como

Puedes obtener las siguientes macros desde here .

if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(IOS_VERSION_3_2_0))      
{

        UIImageView *background = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"cs_lines_back.png"]] autorelease];
        theTableView.backgroundView = background;

}

Espero que esto ayude


La mejor versión actual , sin necesidad de lidiar con la búsqueda numérica dentro de NSString, es definir macros (ver respuesta original: verificar versión de iPhone iOS )

Esas macros existen en github, ver: https://github.com/carlj/CJAMacros/blob/master/CJAMacros/CJAMacros.h

Me gusta esto:

#define SYSTEM_VERSION_EQUAL_TO(v)                  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedSame)
#define SYSTEM_VERSION_GREATER_THAN(v)              ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedDescending)
#define SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(v)  ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN(v)                 ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] == NSOrderedAscending)
#define SYSTEM_VERSION_LESS_THAN_OR_EQUAL_TO(v)     ([[[UIDevice currentDevice] systemVersion] compare:v options:NSNumericSearch] != NSOrderedDescending)

y úsalos así:

if (SYSTEM_VERSION_LESS_THAN(@"5.0")) {
    // code here
}

if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"6.0")) {
    // code here
}

Versión obsoleta a continuación

para obtener la versión del sistema operativo:

[[UIDevice currentDevice] systemVersion]

devuelve una cadena, que se puede convertir en int / float a través de

-[NSString floatValue]
-[NSString intValue]

Me gusta esto

Ambos valores (floatValue, intValue) se eliminarán debido a su tipo, 5.0.1 se convertirá en 5.0 o 5 (float o int), para realizar una comparación precisa, tendrá que separarlo de la lista de INTs check aceptado respuesta aquí: Verifique iPhone Versión de iOS

NSString *ver = [[UIDevice currentDevice] systemVersion];
int ver_int = [ver intValue];
float ver_float = [ver floatValue];

y compara asi

NSLog(@"System Version is %@",[[UIDevice currentDevice] systemVersion]);
NSString *ver = [[UIDevice currentDevice] systemVersion];
float ver_float = [ver floatValue];
if (ver_float < 5.0) return false;

Para la sintaxis de Swift 4.0

El siguiente ejemplo es solo verificar si el dispositivo es de iOS11 o una versión mayor.

let systemVersion = UIDevice.current.systemVersion
if systemVersion.cgFloatValue >= 11.0 {
    //"for ios 11"
  }
else{
   //"ios below 11")
  }

[[[UIDevice currentDevice] systemVersion] floatValue]




ios4