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]