web-dev-qa-db-fra.com

Type de retour en conflit dans l'implémentation de 'supportedInterfaceOrientations': - Avertissement

Après la mise à niveau vers Xcode 7.0, je reçois un avertissement dans la méthode UIViewControllerRotation: - (NSUInteger)supportedInterfaceOrientations:

Type de retour en conflit dans l'implémentation de 'supportedInterfaceOrientations': 'UIInterfaceOrientationMask' (aka 'enum UIInterfaceOrientationMask') vs 'NSUInteger' (aka 'unsigned int')

Pourquoi est-ce et comment le résoudre?

EDIT: Si vous allez à la définition, vous verrez que le type de retour a effectivement changé: - (UIInterfaceOrientationMask)supportedInterfaceOrientations NS_AVAILABLE_IOS(6_0); mais changer le type de retour dans le code ne fait pas taire l'avertissement.

50
turingtested

Essayez ce Tweak:

#if __IPHONE_OS_VERSION_MAX_ALLOWED < 90000  
- (NSUInteger)supportedInterfaceOrientations  
#else  
- (UIInterfaceOrientationMask)supportedInterfaceOrientations  
#endif  
{
   return UIInterfaceOrientationMaskPortrait;
}
113
Nishant

J'utilise celui-ci:

#if __IPHONE_OS_VERSION_MAX_ALLOWED < __IPHONE_9_0
#define supportedInterfaceOrientationsReturnType NSUInteger
#else
#define supportedInterfaceOrientationsReturnType UIInterfaceOrientationMask
#endif

- (supportedInterfaceOrientationsReturnType)supportedInterfaceOrientations {
    return UIInterfaceOrientationMaskPortrait;
}

... un peu plus long que le correctif de Nishant mais un peu plus clair, je pense.

10
turingtested