В моем проекте XCode мне нужны настройки по умолчанию, которые в основном представляют собой набор переменных, таких как GlobalTintColor, ServerUrl и т. Д. Затем мне нужно переопределить некоторые из этих настроек на клиент/цель. Эти настройки предназначены только для использования интервалов, а это значит, что я не ищу решение типа набора параметров. Я не хочу иметь повторяющиеся настройки, поэтому какое-то наследование кажется правильным путем.Как сделать наследование настроек
Я думал, что создаю родительский класс, содержащий все настройки по умолчанию, а затем подкласс для каждого клиента, переопределяя настройки по мере необходимости. Я просто не могу понять, как я загружу эти настройки. Я решил, что только клиенты, которым необходимо переопределить настройки, имеют подкласс. Другие клиенты просто использовали настройки по умолчанию, определенные родительским классом.
Но когда я загружаю настройки при запуске приложения, тогда мне нужно проверить, доступен ли подкласс, а если нет, я загружаю только суперкласс.
Но тогда у меня возникла проблема с классом настроек: подкласс или суперкласс? Я изучал категории, а также кластеры классов, но пока не нашел решения. Кажется, это функциональность, которую нужно многим разработчикам приложений. Кто-нибудь из вас знает о хорошем шаблоне для решения этой проблемы?
Для иллюстрации:
- (id) getAppConfigurationSettings {
id settings;
if ([AppConfigurationSettings class]) {
settings = [AppConfigurationSettings class];
} else {
settings = [DefaultAppConfigurationSettings class];
}
return settings;
}
Да, спасибо, эта часть я получил вниз. Трудная часть для меня - это то, как я создаю правильный класс. – Telstar
Для этого у вас может быть определен определенный enum и инициализировать класс соответственно. См. Мой обновленный ответ. – iphonic