Utilisation de l'iPhone OS 3.0 appels de fonction en place de la fonction 2.2 dépréciée appelle 2.2 dispositifs

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

Question

Si je mets la base + Active SDK d'une application iPhone à 3.0 et la cible de déploiement à 2,2, puis-je utiliser les nouvelles versions des fonctions sur 2.2 périphériques?

Par exemple, UITableViewCell exige maintenant une image à régler à l'aide [cell.imageView setImage:image], alors qu'en 2.2, vous appelleriez [cell setImage:image]. Est-ce que l'utilisation du nouveau krach [cell.imageView setImage:image] sur 2.2 appareils?

Était-ce utile?

La solution

Non, vous ne pouvez pas nous OS 3.0 sur les appels 2.2. méthode désapprouvée devrait être se comporter normalement au moins dans OS 3. Obsolescence dans de nombreux cas dans le système d'exploitation, signifie simplement que recommander Apple à l'aide de nouvelles méthodes ones plutôt que dépréciées; mais ces méthodes peuvent disparaître dans l'avenir aussi.

Vous avez quelques options:

  1. ignorant simplement les avertissements, aussi longtemps que l'application et les méthodes fonctionnent réellement sur OS 3.0.
  2. Avoir un contrôle d'exécution pour déterminer la version du système d'exploitation, et invoquer la méthode appropriée:

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

    ou mieux encore:

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

    Notez qu'une vérification de compilation, en utilisant les directives ifdef ne fonctionnera pas

  3. Dropping OS 2.2 support. Il est tout à fait raisonnable pour vous seul objectif 3.0, ainsi, que l'absorption de 3.X est assez élevé. Dans le cas de ma petite application, en Décembre, j'ai eu 27 utilisateurs sur les systèmes pré-3.0 sur 2058 utilisateurs. Inutile de dire que cette option réduit vos tests besoin de manière significative.

Autres conseils

Non, vous ne pouvez pas utiliser OS 3.0 appels sur un dispositif 2.x. Je serais surpris si vous pouvez même installer une application 3.0 ciblée sur un dispositif 2.x.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top