- 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 лет работы увидел. Вот этим он в первую очередь и плох.
Другой момент: в методе класса объявлять статические переменные... это прямо такой ООП что совсем не ООП. Ладно еще это просто функция была, а так, по крайней мере в теории, ожидается, что метод будет работать с классом к которому он принадлежит. Но это опять же общая проблема всего статического. У меня есть устойчивое впечатление, что модификатор "статик" был специально придуман для людей которым было тяжело переучиться с процедурного стиля на ООП, в смысле "поблажка" позволяющая быстро наговнокодить привычным способом вместо того, чтобы разобраться с проблемой и решить ее лучшим способом.