2009-12-26 5 views
0
//opening DB 
if(sqlite3_step(statement) == SQLITE_ROW) 
    result = [NSString stringWithUTF8String:(char*)sqlite3_column_text(statement,0)]; //! 
else 
    result nil; 
return result; 
//close DB 
+0

veuillez voir ma réponse sur ce lien. ça peut t'aider. http://stackoverflow.com/questions/6185533/memory-leak-in-nsstring-stringwithutf8string/9955130#9955130 –

Répondre

0

la chaîne doit être auto-libérée par stringWithUTF8String, testez-vous les fuites de mémoire sur l'iPhone ou sur le simulateur? Souvent, le code du simulateur est juste un buggier tactile - essayez-le sur l'appareil lui-même

+0

oui je teste sur un simulateur, car le débogage de l'appareil est vraiment lent :(10x pour les réponses, c'est probablement un simulateur de buggy – max

2

Ceci n'est en fait pas une fuite de mémoire. Le NSString sera autoeleased, et le char* retourné par sqlite3_column_text sera nettoyé par sqlite lors de l'appel de l'étape suivante/reset/finalize.

+0

Oui, parfois l'analyse ne reconnaît pas les constructeurs comme ça et pense qu'ils sont des fuites quand ils ne le sont pas – AlBlue

+1

Vous devez afficher la sortie réelle de l'analyseur. – bbum