Xcode: obtenir un avertissement " conversion implicite à partir du type d'énumération UIDeviceOrientation"
Avertissement complet:
Implicit conversion from enumeration type 'UIInterfaceOrientation' to different enumeration type 'UIDeviceOrientation'
Obtenir sur la ligne:
[self orientationChanged:interfaceOrientation];
C'est la méthode:
- (void)orientationChanged:(UIInterfaceOrientation)interfaceOrientation
Je ne peux pas vraiment comprendre d'où vient cet avertissement.
1 réponses
UIDeviceOrientation se réfère à l'orientation physique de l'appareil alors que UIInterfaceOrientation fait référence à l'orientation de l'interface utilisateur. Lorsque vous appelez votre méthode
[self orientationChanged:interfaceOrientation];
Vous passez probablement un UIDeviceOrientation quand vous devriez, selon la méthode, utiliser un UIInterfaceOrientation.
Juste pour développer un peu ce point, UIDeviceOrientation est une propriété de la classe UIDevice, et il y a ces valeurs possibles:
UIDeviceOrientationUnknown- ne Peut pas être déterminé
UIDeviceOrientationPortrait- bouton d'accueil face vers le bas
UIDeviceOrientationPortraitUpsideDown- bouton d'accueil vers le haut
UIDeviceOrientationLandscapeLeft- bouton D'accueil vers la droite
UIDeviceOrientationLandscapeRight- bouton D'accueil vers la gauche
UIDeviceOrientationFaceUp- L'appareil est plat, avec écran vers le haut
UIDeviceOrientationFaceDown- L'appareil est plat, avec écran vers le bas
Pour UIInterfaceOrientation, c'est une propriété de UIApplication et ne contient que 4 possibilités qui correspondent à l'orientation de la barre d'état:
UIInterfaceOrientationPortrait = UIDeviceOrientationPortrait,
UIInterfaceOrientationPortraitUpsideDown = UIDeviceOrientationPortraitUpsideDown,
UIInterfaceOrientationLandscapeLeft = UIDeviceOrientationLandscapeRight,
UIInterfaceOrientationLandscapeRight = UIDeviceOrientationLandscapeLeft
Pour obtenir UIDeviceOrientation, vous utilisez
[[UIDevice currentDevice] orientation]
Et pour obtenir UIInterfaceOrientation, vous utilisez
[[UIApplication sharedApplication] statusBarOrientation]