Самый простой способ - использовать препроцессор для обработки изменения всего кода, который обращается к нему, и иметь объект или класс, обрабатывающий загрузку информации из списка.
Заменить объявления переменных этим кодомнапример, для каждой переменной:
#define kImage ([(AppDelegateClass*)[[UIApplication sharedApplication] delegate] getStringForKey:@"kImage"])
Затем в делегате приложения реализуйте метод getStringForKey:
.
- (NSString *)getStringForKey:(NSString *)key {
static NSDictionary *plist = nil;
if(!plist) plist = [[NSDictionary alloc] initWithContentsOfFile:@"path/to/plist.plist"];
return [plist objectForKey:key];
}
Обратите внимание, что этот код обрабатывает только строки, а не числа.Если вы хотите, чтобы ваши числа также приходили из списка, вы можете добавить их в виде строк и получить целочисленное значение:
#define kCGRectY ([[(AppDelegateClass*)[[UIApplication sharedApplication] delegate] getStringForKey:@"kCGRectY"] intValue])