Поскольку создатели удобства не всегда доступны, то есть:
self.minutesLeft = [NSNumber numberWithInt:number];
распространен другой шаблон, если вы хотите автоматически освобождать объект, когда нет удобного создателя:
self.minutesLeft = [[[NSNumber alloc] initWithInt:number] autorelease];
или, наконец,
NSNumber * n = [[NSNumber alloc] initWithInt:number];
self.minutesLeft = n;
[n release], n = 0;
Кроме того, я думаю, что было бы неплохо предположить, что новый код должен быть написан так, чтобы он был совместим с управляемой памятью (а не сборщиком мусора). Отслеживание объекта, которому была отправлена дополнительная авто-версия, может занять очень много времени, если вы когда-либо будете использовать программу в контексте управляемой памяти. Вероятно, будет много ошибок, которые трудно отследить или воспроизвести (в том числе крупные утечки). Написание интерфейсов / процедур подсчета ссылок должно быть второй натурой - это очень легко написать, когда вы пишете класс, вместо того, чтобы заняться им позже (читай: вам придется прочитать много кода, который занимает очень много времени) - тогда вам придется тестировать, тестировать, тестировать все обновленные программы.