2010-07-12 3 views
0

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

Видимо, у C# есть что-то, называемое конструкторами классов, которые вызываются до того, как вы когда-либо инициируете экземпляр одного класса. Это было бы прекрасным временем для меня, чтобы установить переменную населения мира. Но я не могу найти способ сделать что-то подобное с Objective-C. Есть ли способ сделать это?

Я открыт для других подходов к этому. Спасибо, Роб

+0

Извините, я просто заметил этот вопрос здесь: http://stackoverflow.com/questions/1083160/static-initializer-in-objective-c-upon-class-loading Не понял другого имя для него было «статическим инициализатором». Собираюсь прочитать это очень быстро и может удалить это (хотя это может помочь другим, я думаю) – rob5408

ответ

3

Вы, вероятно, ищете +initialize:

среды выполнения, посылает инициализации каждому классу в программе ровно один раз, как раз перед классом, или любого класса, который наследует от него, направляется его первое сообщение из программы. (Таким образом, метод никогда не может быть вызван, если класс не используется.) Время выполнения отправляет сообщение инициализации классам в потокобезопасном режиме. Суперклассы получают это сообщение перед их подклассами.

+0

Спасибо, просто нашел ссылку на вопрос с этим предложением. Удивительно, что вы находите, когда знаете, что искать! – rob5408

Смежные вопросы