-init
- это метод экземпляра, используемый для инициализации определенного объекта.+initialize
- это метод класса, запускаемый перед созданием любых экземпляров класса и перед запуском других методов класса.+initialize
Вы не используете большую часть времени, но это удобно для установки любых статических переменных, которые может использовать класс в целом, или для обеспечения выполнения определенных условий перед созданием любых экземпляров.
Код, принадлежащий методу -init
, подробно описан в разделе Реализация инициализатора Язык программирования Objective-C .Существует также некоторое обсуждение инициализации классов (например, +initialize
) и причин, по которым вам может потребоваться сделать это в том же документе, в разделе Объекты классов .Код, входящий в +initialize
, как правило, будет сильно привязан к специальной функциональности класса, которая требует, чтобы вы сначала инициализировали его.В +initialize
(и в любом методе класса) следует помнить одну важную вещь: self
в методе класса относится к самому классу, а не к его экземпляру.