Я знаю, что дискуссии о стилях кодирования, как правило, заканчиваются катастрофой и бесконечными пламенными войнами, но это не то, что я хочу достичь. В течение последнего десятилетия я в основном видел два разных стиля кодирования для методов dealloc
в Objective-C. Первым и наиболее распространенным было размещение dealloc
в нижней части файла. Это также стиль, который Apple использует в шаблонах по умолчанию Xcode. Логика этого, похоже, заключается в том, что dealloc
вызывается, когда приближается конец объекта, поэтому конец файла кажется хорошей метафорой.
С другой стороны, пара людей обычно ставит dealloc
непосредственно под директивами @synthesize
. На мой взгляд, это два основных недостатка:
- Верхняя часть файла заполняется скучным кодом.
- Сложнее найти основные части вашего класса, вам нужно прокрутить вниз.
Огромное преимущество, на мой взгляд, заключается в том, что у вас есть прямая визуальная связь между свойствами и соответствующим сообщением release
.
Другое дело - niling уже выпущенные переменные. Хотя я не думаю, что это необходимо, особенно в контексте объекта, где вся переменная получает desctructed после окончания dealloc
, я также склоняюсь к нулю переменных. Я использовал это для переменных в области функций, поэтому я просто согласен с моим стилем кодирования.
Вот как выглядит большинство моих классов:
@implementation Bar
@synthesize foo;
- (void)dealloc
{
[foo release], foo = nil;
[super dealloc];
}
// Initializers and other methods…
Я уже упомянул пару плюсов и минусов. Что вы думаете об этой теме? Каков стиль кодирования, который вы используете в dealloc
и почему? Есть ли другие плюсы и минусы, о которых я забыл упомянуть?
Я не хочу начинать здесь пламенную войну. Я просто хочу знать, какой стиль вы используете, и если у вас есть конкретные причины для этого, или если это не важно для вас в конце.