Я выражу своё личное мнение, но варианты от американской студии выглядят незавершенными. Нет в них должного отношения к деталям.
Плюс я не люблю, когда предлагают несколько вариантов дизайна и выбор ложится на заказчика. Мне ближе процесс, когда у заказчика есть задача, которую надо решить, а исполнитель предлагает лучшее решение, которое может придумать для данной задачи. Одно лучшее решение. Таким образом, ответственность не перекладывается на заказчика («вы сами это выбрали») и, с другой стороны, заставляет исполнителя более тщательно подойти к решению задачи, а не просто набросать какие-то варианты.
Да, действительно, я перепутал сеттер с [myLabel autorelease]; вместо [myLabel release];. Тогда нам не нужно проверять указывают ли поинтеры на один и тот же объект.
Сейчас поправлю.
Плюс я не люблю, когда предлагают несколько вариантов дизайна и выбор ложится на заказчика. Мне ближе процесс, когда у заказчика есть задача, которую надо решить, а исполнитель предлагает лучшее решение, которое может придумать для данной задачи. Одно лучшее решение. Таким образом, ответственность не перекладывается на заказчика («вы сами это выбрали») и, с другой стороны, заставляет исполнителя более тщательно подойти к решению задачи, а не просто набросать какие-то варианты.
[myLabel autorelease];
вместо[myLabel release];
. Тогда нам не нужно проверять указывают ли поинтеры на один и тот же объект.Сейчас поправлю.
Если же мы синтезируем вид (например UILabel), используя свойство с retain таким образом:
@property (retain) IBOutlet UILabel *myLabel
То @synthesize сгенерирует для нас следующий сеттер
- (void)setMyLabel:(UILabel *)anObject
{
[myLabel release];
myLabel = [anObject retain];
}
Завтра перепроверю, а то немного засыпаю уже.