Speicherverluste - Formatieren einer Zeichenfolge zur sekundengenauen Anzeige der Uhrzeit

Hallo Leute. Ich habe eine Methode, die jede Sekunde aufgerufen wird und die ich verwenden möchte, um die Zeit anzuzeigen, in der meine App ihre Arbeit erledigt hat. Derzeit benutze ich die Klasse (Was ich nicht erstellt habe) hat eine Eigenschaft namensprogress Hier wird die Gesamtanzahl der Sekunden gespeichert.

Habe ich schon geschriebenetwas Code Das dauert diese Sekunden und formatiert es in eine lesbare Zeichenfolge. Ich bin neu in diesem Bereich, also verzeihen Sie mir, wenn es nicht der beste Code ist. Ich freue mich über Vorschläge:

<code>// hours, minutes, and seconds are instance variables defined as integers
int totalSeconds = (int)streamer.progress;

hours = totalSeconds / (60 * 60);

if (hours > 0)
    formattedTimeString = [NSString stringWithFormat:@"%d:", hours]; // WRONG

minutes = (totalSeconds / 60) % 60;
seconds = totalSeconds % 60;
[formattedTimeString stringByAppendingFormat:@"%d:%d", minutes, seconds]; // WRONG
</code>

Grundsätzlich möchte ich, dass es als "3:35" angezeigt wird, um beispielsweise 3 Minuten und 35 Sekunden anzuzeigen. Ich möchte den Stundenabschnitt nur dann anzeigen, wenn es eine Stunde war. In diesem Fall wäre es beispielsweise "2: 3: 35" (Kann jemand einen besseren Weg empfehlen, um dies zu formatieren?).

Das Problem Ich habe ist, wo ich tatsächlich die Zeichenfolge erstellen / festlegen (Die Zeilen mit dem Tag FALSCH). Da dies jede Sekunde geschieht, würde ich leicht ein Leck bekommen, wenn ich weiterhin nach einem neuen String-Objekt frage. Ich glaube, ich kann das lösen, indem ich den foramttedTimeString am Ende der Methode freigebe. Aber ist dies der richtige Weg, um dies zu erreichen? Würde einNSMutableString in irgendeiner Weise helfen? Gibt es eine bessere, Cocoa-Methode, um dies zu tun? Ich habe schon nachgefragt#iphonedev @ freenode und sie sagten, ich müsste diese Methode selbst schreiben, aber ich dachte, ich würde noch einmal fragen.

Kontext zur Verfügung stellen: Dies ist eine Internet-Radio-Streaming-App (Ich weiß, dass es bereits viele gibt, aber ich übe nur). Ich möchte anzeigen können, wie lange der Stream gespielt hat.

Tut mir leid, wenn diese Frage dumm ist, wie gesagt, ich bin neu darin.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage