2012-02-10 15 views
5

he implementado AdWhirl en mi proyecto .. he implementado previamente en mis proyectos .. y por eso sólo lo incorporó a mi proyecto actual de mi anterior ..EXC_BAD_ACCESS en device..not en el simulador. (AdWhirl)

- (UIViewController *)viewControllerForPresentingModalView { 
{ 
    return self; 
} 

que había utilizado esto en mi anterior projects..since mi window.rootvviewcontroller era solamente uno mismo .. Pero en mi proyecto actual hay muchas pantallas en las que estoy mostrando ads..so he utilizado

- (UIViewController *)viewControllerForPresentingModalView { 
    { 
     return return [[(AppDelegate *)[[UIApplication sharedApplication] delegate] window] rootViewController] ;; 
    } 

El problema principal es el programa estaba fallando ... y todavía está ... Al principio todo estaba bien ... las pruebas de los anuncios de API se cargaron ... pero se estrelló raramente ... pronto entendí que era por Admob ... se colgaba raramente porque los anuncios de admob eran no cargó la mayor parte del tiempo ...

Ahora buscando estos fallos ... encontré un punto que desde que hice el proyecto en Xcode 4.2 en vez de mis proyectos anteriores Xcode 4.0 había fuertes atributos en mi ventana y vista controlador. Lo quité.

Ahora el problema es que en el simulador no se bloquea pero se bloquea en el dispositivo.

El error es después de tener AdView añadido como subvista y tiene - (UIViewController *)viewControllerForPresentingModalView pasaron por esta función pero antes deadWhirlDidReceiveAd método

El accidente real es [GADRequestPrivate spamSignals] EXC_BAD_ACCESS.

Cualquier ayuda. Gracias

+0

¿Por qué la pregunta está marcada con la etiqueta _android_? – beryllium

+2

causa que se bloquee en Admob y creo que los usuarios de Android tendrán más conocimiento sobre Admob que los desarrolladores de iOS ... – Shubhank

Respuesta

0

Le recomiendo que analice su proyecto y busque fugas de memoria y zombies. Parece que está enviando un mensaje a un objeto liberado que causa el acceso a la memoria no válida. La detección de zombies no se puede ejecutar en el dispositivo, pero puedes ejecutarlo en el simulador. Eche un vistazo a Xcode Instruments - Enable NSZombie Detection? Where is it?

Espero que ayude.

+0

ese es el problema ... definitivamente habría usado zombis ... pero no se ejecuta en el dispositivo y la falla no es en el simulador ...! .. maldición, .. mi suerte: D – Shubhank

+0

Puede ejecutarlo en el simulador. También detectará a los zombies. El simulador no se cuelga, ya que tiene mucha memoria y no necesita anular tu memoria zombies. El dispositivo tiene mucha menos memoria y se bloquea porque la memoria que usan los zombies queda anulada por otras aplicaciones, lo que hace que el acceso no sea válido. Por favor, discúlpeme por mi pobre inglés. – lluismontero

+0

no funcionó .... – Shubhank

1

A continuación respuesta ya ha obtenido recompensa para mí :) ..... puede probar para su problema ...

Enlace: Getting to the bottom of crash

me encontré con uno de la mejor manera de depurar el código para Crash. Sigue el enlace para la técnica de depuración:

http://www.cocoadev.com/index.pl?DebuggingAutorelease

es necesario analizar su consola con mucho cuidado para ver realmente por qué se produce el accidente. Esto me ayudó en casi todo el código que están sin ARC permitido ...

Hope esto podría ayudarle ....

nJoy de codificación ... :)

+0

hubiera sabido cualquier error de tal ... no se trata de depurar ... he seguido el tutorial de adwhirl ... y está cargando iAds correctamente ... pero en AdMob se bloquea con el error en particular ... así que algo podría estar mal dentro de Adwhirl APi solamente ... esperaba que alguien supiera ... esto mismo está funcionando correctamente en mi otra aplicación ... furthur más ... El archivo de implementación de API de Admob está bloqueado. .so ni siquiera puedo saber qué sucede realmente durante el proceso. – Shubhank

+0

Si dices que en otra aplicación está funcionando bien ... entonces debe haber un problema con tu codificación solamente ... así que por esa razón solo intenta usar de esta manera ... y obtén el seguimiento de la última pila y analiza las soluciones ... .. mejor suerte – DShah

+0

Lo siento, pero me estás juzgando como inexperto ... lo he intentado Zombies ... no se cuelga..También tengo experiencia en el desbordamiento de la pila ... así que ten la respuesta teniendo esto en cuenta en lugar de la otra gran cantidad de preguntas donde generalmente la culpa es de la persona que publica la pregunta ... he ofrecido recompensas por alguna buena respuesta ... tu respuesta parece ser solo una extensión del illuismontero .. – Shubhank

0

Incluso si esto sucede en código Adwhirl propietario, puede aprender mucho activando todos los indicadores de depuración como se especifica, por ejemplo, en How to break on __NSAutoreleaseNoPool. Esta respuesta discute muchos indicadores de depuración, no solo los de autorelease.