Мне интересно понять обстоятельства, побудившие разработчика переопределить + initialize или + load. Документация дает понять, что эти методы вызывают для среды выполнения Objective-C, но это действительно все, что ясно из документации этих методов.: -)
Мое любопытство исходит из взгляда на пример кода Apple - MVCNetworking. Их модельный класс имеет метод +(void) applicationStartup
. Он выполняет некоторую домашнюю работу в файловой системе, читает NSDefaults и т.д. И т.д.... и, пытаясь найти методы класса NSObject, похоже, что эта работа в janitorial может быть в порядке, чтобы добавить + нагрузку.
Я изменил проект MVCNetworking, удалив вызов в App Delegate до + applicationStartup и добавив служебные биты в + загрузку... мой компьютер не загорелся, но это не значит, что это правильно! Я надеюсь получить понимание любых тонкостей, gotchas и whatnots вокруг настраиваемого метода настройки, который вы должны вызвать против + нагрузки или инициализации +.
В документации для загрузки + указано:
Сообщение загрузки отправляется классам и категориям, которые оба динамически загружаемых и статически связанных, но только если вновь загруженные класс или категория реализует метод, который может ответить.
Это предложение является kludgey и трудно разобрать, если вы не знаете точного значения всех слов. Помогите!
-
Что подразумевается под "динамически загруженной и статически связанной?" Может ли что-то быть динамически загружено и статически связано, или они являются взаимоисключающими?
-
"... недавно загруженный класс или категория реализует метод, который может ответить" Какой метод? Ответьте, как?
Что касается + инициализации, в документации говорится:
инициализировать, он вызывается только один раз для каждого класса. Если вы хотите выполнить независимая инициализация для класса и для категорий class, вы должны реализовать методы загрузки.
Я предполагаю, что это означает: "если вы пытаетесь настроить класс... не используйте инициализацию". В порядке отлично. Когда или почему я переопределяю инициализацию, то?