Я читаю книгу Big Nerd Ranch по программированию для iOS, и у меня был вопрос о программе Hypnotime, которую они создают в главе 7.
В какой-то момент они реализуют следующий метод:
- (void)showCurrentTime:(id)sender
{
NSDate *now = [NSDate date];
static NSDateFormatter *formatter = nil;
if (!formatter) {
formatter = [[NSDateFormatter alloc] init];
[formatter setTimeStyle:NSDateFormatterShortStyle];
}
[timeLabel setText:[formatter stringFromDate:now]];
}
Мой вопрос касается NSDateFormatter * formatter
. Средство форматирования создается с помощью alloc
и init
. Я всегда понимал, что все, что связано с alloc
, нужно где-то выпустить, верно? Когда форматтер
передается в timeLabel
, разве timeLabel
не отправляет ему сохранить
? И я не могу (не должен?) Впоследствии выпустить форматтер
?
Я просмотрел код на следующих двух страницах и нигде не могу найти никаких сообщений о выпуске, кроме релиз
отправляется на timeLabel
в dealloc
.
Я что-то тут путаю? Есть ли причина, по которой я не должен выпускать форматтер
? Я хочу быть гражданином с хорошей памятью. Приветствуется любая помощь :)