2013-07-06 86 views
0

我正在创建我的第一个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',原因:“[< __NSCFNumb er 0x8569690> valueForUndefinedKey:]:此类不是密钥值,它是密钥id的密钥编码。

+0

您好!我试图在我的应用程序中使用restkit,并遇到同样的问题。你有没有设法找到解决你的问题?如果是这样,请分享一下吗? – mrvn

回答

0

我认为问题在于你在模型中使用了一个原语,即session_id有NSInteger类型。不幸的是,您不能使用它,请改用NSNumber

+0

我已经从xcode生成了所有模型。他们都没有NSInteger。 – hemanth

+0

关系映射部分是否正确? – hemanth

+0

请把RKLogConfigureByName(“RestKit/ObjectMapping”,RKLogLevelTrace);在项目的某个地方,让我们看看输出 – Lonkly