Я отображаю данные в формате JSON с веб-сервера на классы Objective C (NSManagedObjects, смоделированные в Xcode, обработанные Core Data). Для каждого атрибута класса Objective C мне нужно:
- Определить, существует ли ключ атрибута в объекте JSON,
- Определите, не является ли значение для этого ключа нулевым, и
- Передать значение в смоделированный экземпляр класса, если выполняются условия 1 и 2
Сейчас я жестко программирую эту последовательность для каждого из атрибутов, поэтому для каждого атрибута необходим код, подобный следующему:
// dictObject is the JSON object converted into a NSDictionary,
// and person is the instance of the modeled class
if ([dictObject objectForKey:@"nameFirst"] &&
[dictObject objectForKey:@"nameFirst"] != [NSNull null]) {
person.nameFirst = [dictObject objectForKey:@"nameFirst"];
}
Помимо того, что для обработки различных классов требуется lot кода, это кажется грязным и хрупким: любое изменение имени (или локализация языка) может привести к сбою отображения.
Должен быть лучший способ ... что мне не хватает?