El uso de iPhone OS 3.0 llamadas de funciones en lugar de la función obsoleta 2.2 2.2 pide a los dispositivos

StackOverflow https://stackoverflow.com/questions/2012887

Pregunta

Si fijo Base + SDK activa de una aplicación de iPhone a 3.0 y el destino de despliegue a 2,2, puedo usar las nuevas versiones de las funciones de los dispositivos 2.2?

Por ejemplo, UITableViewCell requiere ahora una imagen para ajustar utilizando [cell.imageView setImage:image], mientras que en 2.2, que se dice [cell setImage:image]. ¿El uso de la nueva caída de 2.2 [cell.imageView setImage:image] dispositivos?

¿Fue útil?

Solución

Nop no se puede nos OS 3.0 Pide a 2,2. método en desuso debe ser comportarse de forma normal por lo menos en OS 3. Deprecation en muchos casos en el sistema operativo, sólo significa que Apple recomienda el uso de nuevos métodos en lugar de en desuso queridos; pero esos métodos pueden desaparecer en el futuro también.

Usted tiene algunas opciones:

  1. Simplemente haciendo caso omiso de las advertencias, siempre y cuando la aplicación y métodos realmente funcionan en OS 3.0.
  2. Tener un control de tiempo de ejecución para determinar la versión del sistema operativo, e invocar el método apropiado:

    double version = [[[UIDevice currentDevice] systemVersion] doubleValue];
    if (version >= 3.0) {
        [cell.imageView setImage:image];
    } else {
        [cell setImage:image];
    }
    

    o mejor aún:

    if ([cell respondsToSelector:@selector(imageView)]) {
         [cell.imageView setImage:image];
    } else {
         [cell setImage:image];
    }
    

    Tenga en cuenta que una comprobación en tiempo de compilación, el uso de directivas ifdef no funcionará

  3. caída de apoyo OS 2.2. Es bastante razonable para que sólo se permite orientar 3.0, así como la captación de 3.X es bastante alto. En el caso de mi pequeña aplicación, en diciembre tuve 27 usuarios en sistemas pre-3.0 de 2.058 usuarios. Ni que decir tiene, esta opción reduce significativamente su prueba es necesario.

Otros consejos

No, no se puede utilizar OS 3.0 llamadas en un dispositivo de 2.x. Me sorprendería si se puede instalar una aplicación de 3.0 apuntado en un dispositivo 2.x.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top