У меня есть пара ярлыков, которые я использую в качестве HUD для игрока во время игры. Я часто обновляю эти ярлыки, чтобы у игрока была актуальная информация. Проблема в том, что я использовал
uiLabel.text = [NSString stringWithFormat:@"%3.0f", value];
для передачи нового значения, которое должно иметь метка. Я заметил, однако, что у меня есть что-то вроде утечки мягкой памяти здесь. Поскольку я делаю это обновление несколько раз в секунду, и это создает строку с автоматическим выпуском, я в итоге занимаю больше памяти, чем мне нужно. И сохранить его, так как вид не уходит.
Я также пытался явно распределять и освобождать строки, например:
NSString* value = [[NSString alloc] initWithFormat: @"%3.0f", value];
uiLabel.text = value;
[value release];
Однако я обнаружил, что это, кажется, вызывает то же самое, но быстрее, хотя я не знаю почему. В этой ситуации я бы подумал, что никогда не должно быть никаких струн, ожидающих, чтобы их выпустили, поскольку я так явно их отклоняю.
Кто-нибудь может увидеть, что я здесь делаю, что я явно не вижу? Есть ли лучший / более предпочтительный способ справиться с этим? Некоторый беглый поиск мне не особо помог.