2010-11-27 10 views
0

Ich bekomme ein Leck auf dieser Linie und ich bin nicht sicher, warum ...iPhone Leck auf dieser Linie, warum?

weather.condition = [weather.condition lowcaseString];

Wetter ist ein NSMutableArray mit einer Last von NSStrings in? Gibt es etwas offensichtlich falsch mit dieser Linie oder ist es ein größeres Problem?

Dank

+0

Wie ist die Bedingung definiert? – grahamparks

Antwort

3

Eine Sache, die Sie über das Erkennen von Speicherlecks lernen müssen, ist, dass Lecks die Zeile, in der das Leck auftritt, nicht erkennen, sondern feststellen, wo das ausgelaufene Objekt erhalten/kopiert/erstellt wurde. Sie müssen woanders nach dem tatsächlichen Leck suchen, mehr Code wäre hilfreich. Ich werde diese Antwort aktualisieren, wenn Sie das tun. Bitte kommentieren Sie unten, um anzugeben, dass Sie die Antwort mit mehr Code aktualisiert haben.

+0

Natürlich haben Sie Recht! Ich bin fast fertig mit meiner App, also ist der Code kompliziert, Ihr Tipp hat mich dazu gebracht, weiter darüber nachzudenken, also hoffe ich, dass das Leck bald wieder aufgewischt wird! – user157733

0

Ich erinnere mich, ich hatte dieses Problem, wenn ich mit stringByReplacingOccurrencesOfString war und ich hatte eine neue Zeichenfolge zu erklären, sie in zu halten, anstatt führen sie sich auf, wenn das macht keinen Sinn! :)

0

Wenn weather.condition eine synthetisierte Retain-Eigenschaft ist, dann könnten Sie diese Anweisung wahrscheinlich ohne ein Leck durchkommen, weil die synthetisierte setCondition-Methode prüft, ob der Bedingung ein Wert zugewiesen ist, und diese dann freigibt. Wenn Sie die Methode setCondition geschrieben haben, sind Sie für die Verwaltung des mit der Bedingung verknüpften Speichers verantwortlich.