Ich versuche, die Speicherverluste in meiner App zu reduzieren, also habe ich Instrumente verwendet, um alle Lecks zu finden. Es gelang mir, fast alle Lecks zu entfernen, außer einem sehr nervigen.Instrumente zeigen NSPlaceholderstring Lecks
Instrumente sagt mir, dass ich eine Menge NSPlaceholderstring Lecks haben. Der Code, der das Leck (nach Instrumenten) erzeugt wird:
if (nil == storedHash)
{
NSString *description = [[NSString alloc] initWithFormat:@"1 = %@ 2= %d", uId, service];
self.storedHash = description; // This line is the leak according to instruments
[description release];
description = nil;
}
return storedHash
storedHash ist wie folgt zu definieren:
@property(copy) NSString* storedHash;
ich alles versucht, ich denken kann:
- I verwendet behalten statt kopieren
- Ich benutzte eine Autorelease-Zuweisung des NSString (stringWithFormat)
- Ich habe versucht, den Code mit einem Autorelease Pool
Nichts von den oben genannten verändert das Leck. (In einigen Fällen ändert sich die Art der Lecks, aber es gibt immer noch Lecks)
Ideen jemand?
'self.storedHash' vs.' storedHash' ist in diesem Fall irrelevant. – bbum