Нет, static
не сделает dateFormatter
частью класса. Это может выглядеть так, но static
не является функцией Objective-C и ничего не знает о классах.
static
- это стандартная функция языка Си. Помните, что Objective-C является просто расширением C. Если в методе используется static
, он создаст глобальную переменную, видимую только внутри этого метода.
Это означает, что эта переменная расположена не в стеке, а в сегменте данных. Переменные, локально определенные в методах (нестатические), помещаются в стек вместе с адресом кода, куда возвращаться после завершения вызова метода - поэтому, когда выполнение покидает метод, локальные переменные метода исчезают. В этом методе dateFormatter
всегда представляет одно и то же место в памяти.
Смысл сделать dateFormatter
статичным в этом случае - повысить производительность - вы всегда форматируете даты с одним и тем же форматером, поэтому нет смысла каждый раз воссоздавать этот форматер, поэтому он создается и сохраняется в глобальная переменная только один раз.