2011-12-10 11 views
8

Un resumen rápido de lo que está sucediendo aquí.MobFox iOS Framework, se bloquea cuando XIB se descarga ... ¿Qué estoy haciendo mal aquí?

Tengo un GameScene y un GameOverUIController. Cuando el juego finaliza, carga el GameOverUIController, que carga el xib, que carga el MobFoxBannerView.

Este es el problema: si presiona el botón "reproducir de nuevo" para rápido o juega una ronda de más de 3 minutos, el anuncio se carga en segundo plano pero esencialmente no tiene dónde ir y se cuelga.

Tomé el consejo de un amigo de agregar ViewDidUnload para establecer la vista de pancarta en cero, pero todavía falla ... No soy el programador más increíble admitido, pero siento que estoy cometiendo el error más tonto en alguna parte. .. Cualquier ayuda es muy apreciada. ¿Estoy usando la sintaxis incorrecta en algo aquí?

He hecho las siguientes cosas.

Sintetizo bannerView en la implementación de GameOverUI.

añadir manualmente a la vista ahora, antes de que hubiera añadido una UIWebView directamente al constructor de interfaz xib para GameOverUIController

self.bannerView = [[[MobFoxBannerView alloc] initWithFrame:CGRectMake(0, 0, 320, 50)] autorelease]; 
bannerView.delegate = self; 

[self.view addSubview:bannerView]; 
[self.view bringSubviewToFront:bannerView]; 

Y eso es en mi aplicación principal. Por lo tanto, cada vez que carga la pantalla de GameOver solicita un nuevo complemento.

Luego establezco los valores en el archivo de encabezado.

-(NSString *) publisherIdForMobFoxBannerView:(MobFoxBannerView *)banner; 

@property (nonatomic, retain) MobFoxBannerView *bannerView; 

y establecer mi ID de editor en el fondo del GameOverUIController.m

- (NSString *)publisherIdForMobFoxBannerView:(MobFoxBannerView *)banner 
{ 
return @"xxxxxxxxxxxx"; 
} 

Entonces ... aún así obtener un accidente así, entonces traté de ponerlo a cero con la esperanza de que iba a funcionar .. . pero no estoy seguro acerca de la sintaxis ...

En GameOverUIController.m

- (void)viewDidUnload 
{ 

[super viewDidUnload]; 

self.bannerView = nil; 
// or ? bannerView.delegate = nil; 
} 

Niether de Thos Las líneas funcionan ... Estoy en una pérdida total. Voy a pasar a otra plataforma publicitaria a menos que pueda resolver esto antes de que termine el fin de semana. Perdición de mi existencia en este momento. Cualquier ayuda sería muy apreciada. Muchas gracias

Editar:

lo descubrió ... no tenía nada que ver con ViewUnload ....

- (void)dealloc 
{ 
bannerView.delegate = nil; 
[super dealloc]; 

} 

añadía a la ubicación equivocada ... Trabaja perfectamente ahora.

Respuesta

0

pienso que su problema está en

bannerView.delegate = self; 
  • cuando se carga add (debido a la mala Internet puede ser muy lenta, por ejemplo) - Método delegado está siendo llamado, pero "sí" se libera - por lo tanto, se lanza una excepción de tiempo de ejecución.

Por cierto, no sé nada de MobFox framework. Es solo un antipatrón común.

Cuestiones relacionadas