Vazamentos de memória - Formatando uma string para exibir a hora, a cada segundo
Ei pessoal. Eu tenho um método que é chamado a cada segundo que eu quero usar para exibir o tempo que meu aplicativo vem fazendo é trabalho. Atualmente a classe que estou usando (Que eu não criei) tem uma propriedade chamadaprogress
que armazena o número total de segundos.
Eu já escrevialgum código que leva esses segundos e os formata em uma string legível. Eu sou novo nisso, então me perdoe se não é o melhor código. Saúdo todas as sugestões:
<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>
Basicamente, quero que apareça como "3:35", por exemplo, para mostrar 3 minutos e 35 segundos. Eu só quero mostrar a seção de hora, se tiver sido uma hora, caso em que seria "2: 3: 35" por exemplo (Alguém pode recomendar uma maneira melhor de formatar isso?).
O problema Eu estou tendo é onde eu realmente criar / definir a string (As linhas marcadas como WRONG). Como isso está sendo feito a cada segundo, eu obteria um vazamento facilmente se continuasse pedindo por um novo objeto de string. Eu acho que posso resolver isso liberando o foramttedTimeString no final do método, mas esta é a maneira correta de conseguir isso? Será que umNSMutableString
ajudar de alguma forma? Existe uma maneira melhor, Cocoa de fazer isso? Eu já perguntei em#iphonedev
@ freenode e eles disseram que eu teria que escrever esse método, mas eu pensei em perguntar novamente.
Para fornecer contexto: este é um aplicativo de streaming de rádio na Internet (Eu sei que já tem muitos, mas eu estou apenas praticando). Quero poder mostrar a quantidade de tempo que o fluxo está sendo reproduzido.
Desculpe se essa pergunta é estúpida, heh, como eu disse, eu sou novo nisso.