Объективный класс C для NSDictionary - PullRequest
2 голосов
/ 07 ноября 2011

Я отправляю NSDictionary в веб-сервис JSON для сохранения моих данных в локальной базе данных. Каков наилучший способ преобразования классов Objective C в словари NS?

Вот мой текущий код, кроме написания более общей версии, это лучший способ / только для этого? А в том числе <obj/runtime.h> нормально с яблоком?

 - (NSDictionary*)dictionaryFromContact {

        Class contactClass = [self class];
        u_int count;

        objc_property_t *properties = class_copyPropertyList(contactClass, &count);

        NSMutableDictionary *dict = [[NSMutableDictionary alloc] initWithCapacity:count];

        for (int i = 0; i<count; i++) {
            NSString *str = [NSString stringWithCString:property_getName(properties[i]) 
                                               encoding:NSUTF8StringEncoding];

            //Set the dicationary values from our properties
            [dict setValue:[self valueForKey:str] forKey:str];
        }
        free(properties);

        return [dict autorelease];
    }

Спасибо!

Ответы [ 2 ]

3 голосов
/ 07 ноября 2011

class_copyPropertyList законно. Вы можете рассмотреть dictionaryWithValuesForKeys: для ярлыка.

Если вы используете Core Data для локальной базы данных, вы должны использовать attributesByName и relationshipsByName или propertiesByName.

0 голосов
/ 07 ноября 2011

Посмотрите на Object Mapping функцию RestKit , она может сделать то, что вам нужно.

...