una señalar problema por ishop error devoluciones devolucion dentro cómo compre compra cancelar apple app aplicacion ios objective-c xcode

ios - señalar - itunes



Tipo de retorno en conflicto en la implementación de ''supportInterfaceOrientations'':-Advertencia (3)

Estoy usando este:

#if __IPHONE_OS_VERSION_MAX_ALLOWED < __IPHONE_9_0 #define supportedInterfaceOrientationsReturnType NSUInteger #else #define supportedInterfaceOrientationsReturnType UIInterfaceOrientationMask #endif - (supportedInterfaceOrientationsReturnType)supportedInterfaceOrientations { return UIInterfaceOrientationMaskPortrait; }

... un poco más largo que el arreglo de Nishant pero un poco más claro, creo.

Después de actualizar a Xcode 7.0, recibo una advertencia en el método UIViewControllerRotation: - (NSUInteger)supportedInterfaceOrientations :

Tipo de retorno en conflicto en la implementación de ''supportInterfaceOrientations'': ''UIInterfaceOrientationMask'' (también conocido como ''enum UIInterfaceOrientationMask'') vs ''NSUInteger'' (también conocido como ''unsigned int'')

¿Por qué es eso y cómo lo soluciono?

EDITAR: si va a la definición, verá que el tipo de retorno ha cambiado realmente: - (UIInterfaceOrientationMask)supportedInterfaceOrientations NS_AVAILABLE_IOS(6_0); pero cambiar el tipo de retorno en el código no silencia la advertencia.


He estado en esto durante algunos fines de semana para encontrar la solución adecuada, he intentado muchas otras soluciones pero simplemente no funcionó correctamente. Si solo desea que cierta IU esté en horizontal o vertical, pruebe este método a continuación. Estoy ejecutando Xcode 7.2.1, estoy usando un Bool para establecer el valor junto con NSUSerDefaults en cada clase.Quiero seguir UInterfaceOrientations específicas. El siguiente método se llama cada vez que se presenta una nueva IU o cuando se gira el dispositivo, puede verificar esto colocando un NSLog que verifica el valor de bool en ese método y vea usted mismo cómo cambia.

- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:

En su AppDelegate haga lo siguiente

.h @property (asignar, no atómico) BOOL shouldRotate;

.metro

- (UIInterfaceOrientationMask)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(nullable UIWindow *)window NS_AVAILABLE_IOS(6_0) __TVOS_PROHIBITED{ _shouldRotate = [[NSUserDefaults standardUserDefaults]boolForKey:@"rotateKey"]; NSLog(@"Did I get to InterfaceOrientation /n And the Bool is %d",_shouldRotate); if (self.shouldRotate == YES) return UIInterfaceOrientationMaskAllButUpsideDown; else return UIInterfaceOrientationMaskPortrait;

}

AHORA EN CADA CLASE QUE DESEA TENER UNA UIINTERFACEORIENTACIÓN ESPECÍFICA HAGA ESTO

-(void)viewDidAppear:(BOOL)animated{ [super viewDidAppear:YES]; // [[AppDelegate sharedAppDel]setShouldRotate:YES]; BOOL rotate = NO; [[NSUserDefaults standardUserDefaults]setBool:rotate forKey:@"rotateKey"]; [[NSUserDefaults standardUserDefaults]synchronize]; } -(BOOL)shouldAutorotate { return YES; }

En las Vistas que desea rotar, cambie el valor de Bool a Sí. Ahora en tu AppDelegate

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // Override point for customization after application launch. BOOL rotate = NO; [[NSUserDefaults standardUserDefaults]setBool:rotate forKey:@"rotateKey"]; [[NSUserDefaults standardUserDefaults]synchronize]; return YES; }

También en tu AppDelegate

- (void)applicationWillTerminate:(UIApplication *)application { // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. BOOL rotate = NO; [[NSUserDefaults standardUserDefaults]setBool:rotate forKey:@"rotateKey"]; [[NSUserDefaults standardUserDefaults]synchronize]; }

Espero que esto ayude a muchos desarrolladores. Probado y probado muchas veces.

Saludos

JZ


Prueba este ajuste:

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