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