Domanda

mano Green I am. Sto utilizzando gli strumenti, e così è stato un grande aiuto per me finora, ma sono confuso ora perche' segnalare una perdita di memoria a me, mentre la sua storia blocco trapelato mi mostra che il conteggio ref di quella memoria erano finalmente diventati 0 . che cosa significa?
E 'davvero imbarazzante che non ho potuto postare un'immagine qui ... quindi devo descrivere in testo. La speranza sarebbe abbastanza chiaro per voi:

Tipo di evento || RefCt || Biblioteca Responsabile || Responsabile
Caller malloc || 1 || MyWeather || + [ForecastData parseSingleForecastWithXMLElement:]
autorelease || || MyWeather || + [ForecastData parseSingleForecastWithXMLElement:]
conservare || 2 || MyWeather || + [ForecastData parseWithData:]
rilasciare || 1 || Fondazione || + [Scarico NSAutoreleasePool:]
conservare || 2 || Fondazione || + [NSThread initWithTarget: selettore: oggetto:]
rilasciare || 1 || Fondazione || + [NSString confrontare: opzioni:]
rilasciare || 0 || MyWeather || + [RootViewController dealloc]

Ogni aiuto sarà apprezzato ~

È stato utile?

Soluzione

E 'stato causato dalla mancanza di [super dealloc] in dealloc di forecastData, in modo che parte della memoria del forecastData non viene mai liberato, mentre il conteggio di conservare forecastData ha sono diventati zero. Comunque, grazie ragazzi.

Altri suggerimenti

non sta fornendo il codice di esempio tanto potrebbe essere qualsiasi cosa. La RefCount di MyWeather è pari a zero, ma Foundation è ancora uno, quindi forse si è ovunque assegnato un NSSting un mai rilasciato?

btw. Non avrei mai alloc-init una stringa, invece l'impostazione del testo direttamente e lasciare che la gestione della memoria faccia il resto. Non so perché, ma penso che sia un po 'buggy. A volte ricevo strani errori se provo qualcosa di simile:

NSString *str = [[NSString alloc] initWithString:@"some Text"];
myLabel.text = str;
[str release];

myLabel dovrebbe mantenere, ma non è così. Mi metterò un errore se provo a release esso. (E una perdita in caso contrario)

Se io uso

NSString *str = @"some Text";
myLabel.text = str;

funziona benissimo, nessun errore e nessuna perdita.

Hai provato questo sul dispositivo? A volte si può vedere perdite rivelano che non sono realmente le perdite.

L'altro motivo avrebbe potuto essere che hai avuto NSZombie abilitato, il che significa che gli oggetti in realtà non vengono rilasciati.

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