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