Domanda

Un'app che sto lavorando continua a schiantarsi quando viene eseguito su iPhone ma non sul simulatore (anche se viene visualizzato un avviso quando viene eseguito senza simbolico malloc_error_break, ma l'app continua a lavorare sulla SIM)

Non sto rilasciando manualmente alcuna stringa, invece, uso:

[[[NSString / NSMutableString alloc] init] autorelease]; 
.

(che faccio tutto il tempo per altre app e non mi hai mai dato un problema)

Ora quando ho impostato malloc_error_break come un punto di interruzione ottengo:

2012-03-07 17:04:06.072 columns[15487:f803] *** -[CFString release]: message sent to deallocated instance 0x68c8210
.

con xcode4 saltando a:

int main(int argc, char *argv[])
{
    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
    int retVal = UIApplicationMain(argc, argv, nil, @"AppDelegate");   >>> Thread 1
    [pool release];
    return retVal;
 }
.

Ho anche nszombieenabled quando viene eseguito sul simulatore BTW

Se qualcuno può aiutarmi su come eseguire il debug su questo su Xcode 4 o indicami un tutorial online che sarebbe molto apprezzato!

Saluti

david

È stato utile?

Soluzione

Rimuovere l'autorelease dai tuoi metodi NSString e aggiungili indietro finché non si blocca (immagino che questa sia la risposta ora, quindi ...)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top