restkit: отображение отношений to_many с основными данными

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

Динамики JSON

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

Сопоставление

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», причина: «[‹ __ NSCFNumber 0x8569690> valueForUndefinedKey:]: этот класс не соответствует кодированию значения ключа для идентификатора ключа ».


person hemanth    schedule 06.07.2013    source источник
comment
Привет! Я пытаюсь использовать restkit в своем приложении и сталкиваюсь с той же проблемой. Удалось ли вам найти ответ на свой вопрос? Если да, не могли бы вы поделиться им?   -  person mrvn    schedule 29.08.2013


Ответы (1)


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

person Lonkly    schedule 07.07.2013
comment
Я сгенерировал все свои модели из xcode. Ни в одном из них нет NSInteger. - person hemanth; 07.07.2013
comment
Пожалуйста, поместите RKLogConfigureByName (RestKit / ObjectMapping, RKLogLevelTrace); где-нибудь в проекте и давайте посмотрим на результат - person Lonkly; 07.07.2013