Спасибо за ответ!
О «статических» и «классовых методах», AFAIK, это просто наименование, никакой реальной разницы.Как «функции / методы» и «сообщения».
Однако это не обязательно «неправильный» дизайн.Прежде всего вы должны помнить, что в ObjC нет пространства имен, поэтому единственный способ навести порядок в вещах - это класс.Потому что, если имена двух функций сталкиваются, компилятор будет громко кричать.Иногда существуют некоторые функции, которые являются функциями «Утилиты» и работают над другими объектами или выполняют определенные вычисления, которые не могут быть напрямую связаны с определенным объектом для управления ими, а также они не должны, потому что это будет просто генерировать ненужныенакладные расходы.
Будучи очень опытным программистом на C / C ++ / Asm / Others, при программировании на ObjC я склонен всегда освобождать память сам по соображениям производительности.По тем же причинам я не хотел бы генерировать какие-либо издержки там, где это не нужно.И у ObjC много накладных расходов.
В документах также не говорится, что я ДОЛЖЕН наследоваться от NSObject, он говорит, что СЛЕДУЕТ, когда я хочу, чтобы он корректно управлялся фреймворком.
Но, насколько я понимаю, нет необходимости в каком-либо управлении, эти функции должны быть просто функциями, заключенными в пространство имен класса.
About + initiallize - это можно переопределить, только если класс наследует от NSObject.Таким образом, оригинальный вопрос все еще остается - зачем мне наследовать от NSObject, если я не хочу никаких его сервисов?Мне не нужно выделять класс или инициализировать его, так как я не имею ничего общего с его экземпляром!
Также странная вещь в ObjC заключается в том, что вы можете переопределить метод класса?!