2010-07-24 5 views
1

Je suis développé une application iPhone qui fonctionne bien dans l'iphone 3.0.Problème de compatibilité iPhone 4.0

Alors que je fais de la comparabilité avec 4.0, il donne quelques fonctionnements déconseillés.

S'il vous plaît trouver le code ci-dessous .....

[[UIApplication sharedApplication] setStatusBarHidden:YES animated:NO]; 

Note: cela fonctionne bien dans la version 3.0, mais donnant avertissement à 4,0

[[UIApplication sharedApplication] setStatusBarHidden:YES 
             withAnimation:UIStatusBarStyleDefault]; 

Note: cela fonctionne bien dans la version 4.0, mais pas du tout de travail en 3.0.

Ma partie codante étant presque terminée, j'ai besoin de publier cette application dès que possible.

Aidez-moi s'il vous plaît dans ce numéro.

Merci d'avance.

+0

Si ma méthode ne résout pas votre problème, vous devez mieux expliquer le problème. – jtbandes

Répondre

2

Vous avez deux options principales:

  1. si vous utilisez setStatusBarHidden:animated: dans la version 4.0, il fonctionnera. Il est obsolète, ce qui signifie que vous devriez l'éviter, mais il fonctionnera toujours - pour l'instant.

  2. Vérifiez lors de l'exécution que l'on est la meilleure option:

if ([UIApplication instancesRespondToSelector:@selector(setStatusBarHidden:withAnimation:)]) { 
    // use 4.0 method 
} else { 
    // use 3.0 method 
} 
+0

Oui, j'ai utilisé ce code plus tôt, Mais le problème n'est pas résolu. – vulvaji

1

La façon Poper de traiter ces problèmes est d'utiliser la méthode « instancesRespondToSelector » pour vérifier quelle version vous êtes en cours d'exécution. Il existe une possibilité d'utiliser également une directive de pré-compilation, mais l'introspection est la méthode recommandée par Apple.

Vérifiez donc si l'objet UIApplication répond au setStatusBarHidden: withAnimation selector Nd exécutez le code 4.0 sinon appelez le code 3.0.

Questions connexes