2013-07-06 6 views
0

Я создаю свое первое приложение RestKit. Я пытаюсь сопоставить отношение to_many к основным данным.restkit: сопоставление to_many отношений с основными данными

Спикеры JSON

{ 
id: 1, 
session_ids: [1,87] 
}, 
{ 
id: 2, 
session_ids: [2,88] 
}, 

Mapping

sessionEntitiyMapping = [RKEntityMapping mappingForEntityForName:@"Session" inManagedObjectStore:self.managedObjectStore]; 
[sessionEntitiyMapping addAttributeMappingsFromDictionary:@{ 
@"id":    @"session_id", 
}]; 
sessionEntitiyMapping.identificationAttributes = @[ @"session_id" ]; 

speakerEntityMapping = [RKEntityMapping mappingForEntityForName:@"Speaker" inManagedObjectStore:self.managedObjectStore]; 
[speakerEntityMapping addAttributeMappingsFromDictionary:@{ 
@"name":   @"name", 
@"id":    @"speaker_id", 
}]; 

[speakerEntityMapping addPropertyMapping:[RKRelationshipMapping relationshipMappingFromKeyPath:@"session_ids" 
                        toKeyPath:@"sessions" 
                        withMapping:sessionEntitiyMapping]]; 


speakerEntityMapping.identificationAttributes = @[ @"speaker_id" ]; 

Ошибка

Нагрузочный приложение из-за неперехваченного исключением 'NSUnknownKeyException', причина: «[< __NSCFNumb er 0x8569690> valueForUndefinedKey:]: этот класс не соответствует кодовому значению для идентификатора ключа. '

+0

Здравствуйте! Я пытаюсь использовать restkit в своем приложении и сталкиваюсь с одной и той же проблемой. Вам удалось найти решение вопроса? Если да, не могли бы вы поделиться им? – mrvn

ответ

0

Я думаю, проблема в том, что вы используете примитив в своей модели, то есть session_id имеет тип NSInteger. К сожалению, вам запрещено использовать его, вместо этого используйте вместо него NSNumber.

+0

Я создал все мои модели из xcode. Ни у кого из них нет NSInteger. – hemanth

+0

Правильно ли это отношение? – hemanth

+0

Введите RKLogConfigureByName («RestKit/ObjectMapping», RKLogLevelTrace); где-то в проекте и посмотрим на результат – Lonkly

Смежные вопросы