Wycieki pamięci - formatowanie ciągu znaków w celu wyświetlania czasu, co sekundę
Cześć ludzie. Mam metodę, która jest wywoływana w każdej sekundzie, której chcę użyć, aby wyświetlić czas, w którym moja aplikacja wykonuje swoją pracę. Obecnie klasa, z której korzystam (Którego nie stworzyłem) ma właściwość o nazwieprogress
który przechowuje całkowitą liczbę sekund.
Już napisałemjakiś kod co zajmuje te sekundy i formatuje je na czytelny ciąg. Jestem nowy w tym, więc przepraszam, jeśli nie jest to najlepszy kod. Z zadowoleniem przyjmuję wszelkie sugestie:
<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>
Zasadniczo chcę, aby wyglądało to jako „3:35”, na przykład, aby pokazać 3 minuty, 35 sekund. Chcę tylko pokazać sekcję godzin, jeśli to była godzina, w którym to przypadku będzie to na przykład „2: 3: 35” (Czy ktoś może polecić lepszy sposób formatowania?).
Problem Mam to, gdzie faktycznie tworzę / ustawiam ciąg (Linie oznaczone jako ŹLE). Ponieważ jest to wykonywane co sekundę, łatwo dostanę wyciek, jeśli będę pytał o nowy obiekt ciągu. Uważam, że mogę rozwiązać ten problem, zwalniając foramttedTimeString na końcu metody, ale czy jest to właściwy sposób, aby to osiągnąć? CzyNSMutableString
w jakikolwiek sposób pomóc? Czy jest lepszy sposób na Cocoa? Zapytałem już#iphonedev
@ freenode i powiedzieli, że będę musiał sam napisać tę metodę, ale pomyślałem, że zapytam jeszcze raz.
Aby zapewnić kontekst: jest to aplikacja do transmisji strumieniowej radia internetowego (Wiem, że jest ich już wiele, ale ćwiczę). Chcę być w stanie pokazać czas, przez który strumień był odtwarzany.
Przepraszam, jeśli to pytanie jest głupie, tak jak powiedziałem, jestem nowy.