- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
#pragma mark - class methods
+ (CGFloat)cellHeightForCategory:(PostCategory *)category subscribed:(BOOL)subscribed
{
static CategoryTableViewCell *cell = nil;
if(!cell) {
cell = [[[UINib nibWithNibName:NSStringFromClass([self class]) bundle:[NSBundle mainBundle]] instantiateWithOwner:nil options:nil] firstObject];
}
[cell setupCellForCategory:category subscribed:subscribed];
[cell layoutIfNeeded];
return [cell.contentView systemLayoutSizeFittingSize:UILayoutFittingExpandedSize].height;
}
Задаёмся мы тут вопросом, почему это таблица загрузке данных зависает на 5 секунд...
Но статик внутри функции - определённо новое слово в говнокоде.
В любом случае, я static внутри метода вообще впервые за 6 лет работы увидел. Вот этим он в первую очередь и плох.
Другой момент: в методе класса объявлять статические переменные... это прямо такой ООП что совсем не ООП. Ладно еще это просто функция была, а так, по крайней мере в теории, ожидается, что метод будет работать с классом к которому он принадлежит. Но это опять же общая проблема всего статического. У меня есть устойчивое впечатление, что модификатор "статик" был специально придуман для людей которым было тяжело переучиться с процедурного стиля на ООП, в смысле "поблажка" позволяющая быстро наговнокодить привычным способом вместо того, чтобы разобраться с проблемой и решить ее лучшим способом.