Я сопоставляю данные в формате JSON с веб-сервера с классами Objective C (NSManagedObjects, смоделированные в Xcode, обрабатываемые Core Data). Для каждого атрибута класса Objective C мне нужно:
Прямо сейчас я жестко кодирую эту последовательность для каждого из атрибутов, поэтому для каждого атрибута нужен следующий код:
// 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"];
}
Помимо требования лота кода для обработки различных классов, это кажется неуклюжим и хрупким: любое изменение имени (или языковой локализации) приведет к сбою сопоставления.
Должен быть лучший способ ... что мне не хватает?