J'utilise des macros pour différer les versions mais je ne peux pas forcer le bon fonctionnement. Je:Macros #ifdef pour les versions de contrôle
#ifdef _IPHONE_4_0
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];
#else
[[UIApplication sharedApplication] setStatusBarHidden:YES animated:YES];
#endif
et
#if __IPHONE_OS_VERSION_MAX_ALLOWED < _IPHONE_4_0
[[UIApplication sharedApplication] setStatusBarHidden:YES animated:YES];
#else
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];
#endif
et
#if defined(__IPHONE_4_0)
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationFade];
#else
[[UIApplication sharedApplication] setStatusBarHidden:YES animated:YES];
#endif
Peu importe quelle version j'utilise - toujours appelé seulement l'une des lignes. Et le __IPHONE_4_0 est toujours défini. Des idées?
Cordialement, Dmitry M.
merci pour la réponse. mais dans ce cas, quoi pour ces macros peuvent être utilisés du tout? Je pensais que le __IPHONE_OS_VERSION_MAX_ALLOWED sera différent pour la même application ruinant sur OS différent. non? – Dmitry
Dieu no. Les macros n'affectent que l'état du * compilateur * - une fois l'application compilée, elles ont disparu dans les brouillards de RAM et n'ont plus aucun effet sur l'application. Dans ce cas, Apple les utilise pour faire la distinction entre les cibles de compilation afin qu'un fichier d'en-tête puisse être utilisé pour plusieurs cibles et émettre des erreurs et des avertissements utiles, entre autres choses. –