Fugas de memoria: formateo de una cadena para mostrar el tiempo, cada segundo

Hola chicos. Tengo un método que recibe llamadas cada segundo que quiero usar para mostrar el tiempo que mi aplicación ha estado funcionando. Actualmente la clase que estoy usando (Que no he creado) tiene una propiedad llamadaprogress que almacena el número total de segundos.

Ya he escritoalgun código que toma estos segundos y lo formatea en una cadena legible. Soy nuevo en esto, así que perdóname si no es el mejor código. Doy la bienvenida a cualquier sugerencia:

<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>

Básicamente quiero que aparezca como "3:35", por ejemplo, para mostrar 3 minutos, 35 segundos. Solo quiero mostrar la sección de horas si ha sido una hora, en cuyo caso sería "2: 3: 35" por ejemplo (¿Alguien puede recomendar una mejor manera de formatear esto?).

El problema Tengo es donde creo / establezco la cadena (Las líneas etiquetadas INCORRECTO). Dado que esto se realiza cada segundo, fácilmente obtendría una fuga si sigo pidiendo un nuevo objeto de cadena. Me imagino que puedo resolver esto liberando el foramttedTimeString al final del método, pero ¿es esta la forma correcta de lograr esto? Sería unNSMutableString ayuda de alguna manera? ¿Hay una forma mejor, Cocoa de hacer esto? Ya pregunté en#iphonedev @freenode y me dijeron que tendría que escribir este método yo mismo, pero pensé que volvería a preguntar.

Proporcionar contexto: esta es una aplicación de transmisión de radio por internet (Sé que ya hay muchos, pero solo estoy practicando.). Quiero poder mostrar la cantidad de tiempo durante el cual se ha reproducido la transmisión.

Lo siento si esta pregunta es estúpida, jeje, como dije, soy nueva en esto.

Respuestas a la pregunta(4)

Su respuesta a la pregunta