2012-02-10 18 views
5

Ho implementato adwhirl nel mio progetto .. L'ho implementato in precedenza nei miei progetti .. quindi l'ho appena incorporato nel mio progetto corrente dal mio precedente ..EXC_BAD_ACCESS nel dispositivo ... non nel simulatore. (Adwhirl)

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

avevo usato questo nel mio precedente projects..since mia window.rootvviewcontroller era solo su se stesso .. Ma nel mio progetto attuale ci sono molti schermi su cui sto mostrando ads..so ho usato

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

Il problema principale è il programma andava in crash..e lo è ancora..Al primo posto tutto andava bene..addie test ads caricate..ma ma si è arrestato raramente..sto presto capisco che era a causa di Admob ..it si è arrestato raramente perché gli annunci di admob sono stati non caricato la maggior parte del tempo ..

Ora cercando questi arresti anomali .. ho trovato un punto che da quando ho realizzato il progetto in Xcode 4.2 piuttosto che nei miei precedenti progetti Xcode 4.0 c'erano attributi forti nella mia finestra e vista controller. L'ho rimosso.

Ora il problema è nel simulatore, non si blocca ma si blocca nel dispositivo.

L'errore è dopo aver ADView aggiunto come una visualizzazione secondaria e ha - (UIViewController *)viewControllerForPresentingModalView ha attraversato questa funzione ma primaadWhirlDidReceiveAd metodo

L'incidente reale è [GADRequestPrivate spamSignals] EXC_BAD_ACCESS.

Qualsiasi aiuto. Grazie

+0

Perché la domanda è contrassegnata con il tag _android_? – beryllium

+2

causa di arresto anomalo in Admob e credo che gli utenti Android avranno più conoscenza di Admob rispetto agli sviluppatori iOS .. – Shubhank

risposta

0

Ti consiglio di analizzare il tuo progetto e cercare perdite di memoria e zombi. Sembra che tu stia inviando un messaggio a un oggetto rilasciato che causa l'accesso non valido alla memoria. Il rilevamento degli zombi non può essere eseguito sul dispositivo, ma puoi eseguirlo sul simulatore. Date un'occhiata a Xcode Instruments - Enable NSZombie Detection? Where is it?

Spero che aiuti.

+0

questo è il problema .. avrei sicuramente usato gli zombi .. ma non funziona sul dispositivo e l'arresto non è nel simulatore ...! .. maledizione, .. fortuna: D – Shubhank

+0

Puoi eseguirlo sul simulatore. Rileverà anche gli zombi. Il simulatore non si arresta in quanto ha molta memoria e non ha bisogno di scavalcare la memoria degli zombie. Il dispositivo ha molta meno memoria e si blocca perché la memoria che i tuoi zombi stanno usando viene sovrascritta da altre applicazioni, rendendo l'accesso non valido. Per favore, scusami per il mio povero inglese. – lluismontero

+0

non ha funzionato .... – Shubhank

1

Sotto risposta è già guadagnato di taglie per me :) ..... si può provare per il vostro problema ...

Link: Getting to the bottom of crash

ho trovato uno dei modi migliori per il debug del codice per Crash. Segui il link per tecnica di debug:

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

è necessario analizzare la Console molto attentamente per vedere in realtà il motivo per cui si verifica l'incidente. Questo mi ha aiutato in quasi tutto il codice che sono senza ARC abilitato ...

Spero che questo potrebbe aiutare ....

nJoy codifica ... :)

+0

avrei saputo qualsiasi errore di such..it non riguarda il debugging .. ho seguito il tutorial di adwhirl..e sta caricando correttamente iAds..ma in Admob si blocca con l'errore particolare ... quindi qualcosa potrebbe essere sbagliato solo nell'API Adwhirl .. speravo che qualcuno potesse sapere ... questa stessa cosa funziona correttamente nella mia altra app ... furthur di più .. Il file di implementazione dell'API di Admob è bloccato. .so non posso nemmeno sapere cosa succede realmente durante il processo. – Shubhank

+0

Se affermi che in altre app funziona correttamente ... allora deve avere problemi solo con la tua codifica ... quindi per questo motivo cerca solo di usare in questo modo ... e ottenere la traccia Last Stack e analizzare le soluzioni .. .. migliore fortuna – DShah

+0

Scusate, ma mi state giudicando inesperto .. ho provato Zombies..it non si è schiantato..sono anche esperto in overflow dello stack..per favore, mantieni la risposta tenendo a mente che non tutta un'altra questione in cui solitamente la colpa è della persona che ha posto la domanda .. ho offerto taglie per qualche buona risposta ... la tua risposta sembra essere solo un'estensione dell'illuismontero .. – Shubhank

0

Anche se questo avviene in codice Adwhirl proprietario, puoi imparare molto attivando tutti i flag di debug come specificato, ad esempio, in How to break on __NSAutoreleaseNoPool. Questa risposta discute molti flag di debugging, non solo quelli di pool di autorelease.

Problemi correlati