puede utilizar this método o la que dice DarkDust y comprobar la versión del IOS SDK cuando compila, pero normalmente lo que es más agradable es si maneja algunas de estas cosas en tiempo de ejecución ya que los usuarios pueden actualizar sus dispositivos y luego adoptar mágicamente nuevas características u obtener una mejor integración del sistema operativo.
Hay un par de formas de hacerlo. En SDKS más nuevos debe tener NS_CLASS_AVAILABLE
. Sin embargo, si todavía está soportando SDK anteriores, puede que no. Pero esto es Objective-C, por lo que la suerte está de nuestro lado:
Class cls = NSClassFromString (@"NSRegularExpression");
if (cls) {
// Create an instance of the class and use it.
} else {
// Alternate code path to follow when the
// class is not available.
}
Básicamente, la forma en que esto funciona es el sistema le pregunta si un tipo de clase está disponible, si no, se devuelve un valor nulo. Esto es algo peligroso si no se prueba porque es una cadena y se compilará, pero debería poder manejarlo.
Si se trata de una clase que existe en ambos lugares, se puede comprobar la disponibilidad de selección en tiempo de ejecución así:
if([TheAppleClass instancesRespondToSelector:@selector(aMethod:)]) {
// invoke the inherited method
[myInstance aMethod:parameter];
}
reference1reference2
De esta manera se podría proporcionar una formación que todavía apoya OS4. 2 usuarios con una hoja de tweets personalizada, pero cuando se actualizan, obtienen automáticamente la integración de Twitter del sistema operativo. Sin embargo, todavía está todo en una sola compilación que puede lanzar cuando lo desee sin tener que esperar que el 90% del mercado se actualice antes de comenzar a alienar a los usuarios de sistemas operativos más antiguos.
Posible duplicado: http://stackoverflow.com/questions/1864114/how-to-detect-iphone-os-version-using-macros – IronMensan