2012-09-24 37 views

Respuesta

49

Marque esta GitHub Gist https://gist.github.com/998472

Puede añadir el código o incluirlo en su ...- archivo Prefix.pch para que pueda Úselo donde lo necesite.


EDITAR

estoy dejando un ejemplo de cómo se puede utilizar el código de Gist que la gente pueda comprobar si es útil para su caso. Esto también se puede encontrar en el Gist.

/* 
* Usage 
*/ 

if (SYSTEM_VERSION_LESS_THAN(@"4.0")) { 
    ... 
} 

if (SYSTEM_VERSION_GREATER_THAN_OR_EQUAL_TO(@"3.1.1")) { 
    ... 
} 
+0

Si bien me encanta el código que tiene en la esencia (como comenté allí), sería aún mejor si pudiera incluir un ejemplo en esta respuesta. –

+0

No es mi idea principal y no incluiré el código aquí ya que se ha mejorado la esencia con el tiempo y esta respuesta está pasada de moda. Sin embargo, voy a dejar un ejemplo de cómo usarlo para que la gente pueda ver si es útil para su caso. Gracias por preocuparte :) –

12

Puede obtener la versión de IOS como una cadena usando:

[[UIDevice currentDevice] systemVersion] 
+0

¿Es cadena de retorno? –

40

Prueba esto:

Actualización:

NSArray *vComp = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."]; 

if ([[vComp objectAtIndex:0] intValue] >= 7) { 
    // iOS-7 code[current] or greater 
} else if ([[vComp objectAtIndex:0] intValue] == 6) { 
    // iOS-6 code 
} else if ([[vComp objectAtIndex:0] intValue] > 2) { 
    // iOS-3,4,5 code 
} else { 
    // iOS-1,2... code: incompatibility warnings, legacy-handlers, etc.. 
} 

código anterior:

NSArray *vComp = [[UIDevice currentDevice].systemVersion componentsSeparatedByString:@"."]; 

if ([[vComp objectAtIndex:0] intValue] == 6) { 
    // iOS-6 code 
} else { 
    // iOS-5, iOS-4... code  
} 

para detectar específicamente el uso de una subversión IOS

float sysVer = [[[UIDevice currentDevice] systemVersion] floatValue]; 

if (sysVer > 6.01) { 
    // iOS-6.01+ code 
} else { 
    // prior iOS versions 
} 
+0

Si la versión de iOS es 6.0.1 y superior a 6, ¿su código sigue siendo correcto? –

+1

sí. Solo se verifica el primer índice –

+0

Esto no garantiza el futuro contra iOS 7 y superior. Debería ser 'if ([[vComp objectAtIndex: 0] intValue]> = 6)' – colincameron