restkit:映射 to_many 与核心数据的关系

Posted

技术标签:

【中文标题】restkit:映射 to_many 与核心数据的关系【英文标题】:restkit: mapping to_many relations with core data 【发布时间】:2013-07-06 20:37:26 【问题描述】:

我正在创建我的第一个 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> valueForUndefinedKey:]:此类不符合键 ID 的键值编码。”

【问题讨论】:

您好!我正在尝试在我的应用程序中使用 restkit 并遇到同样的问题。您是否设法找到解决问题的方法?如果有,可以分享一下吗? 【参考方案1】:

我认为问题在于您在模型中使用了原语,即 session_id 具有 NSInteger 类型。很遗憾,您不能使用它,请改用NSNumber

【讨论】:

我已经从 xcode 生成了我所有的模型。它们都没有 NSInteger。 请输入 RKLogConfigureByName("RestKit/ObjectMapping", RKLogLevelTrace);在项目的某个地方,让我们看看输出

以上是关于restkit:映射 to_many 与核心数据的关系的主要内容,如果未能解决你的问题,请参考以下文章

RestKit 两个连续的 enqueueBatchOfObjectRequestOperations 没有直接映射到核心数据

将输出映射到 Restkit 中的核心数据时崩溃

RestKit 映射结果已填充,但未设置核心数据实体

使用 RestKIt 在核心数据实体中映射 json 对象

使用 managedObjectCache 时的 Restkit 映射

使用 RestKit 将一个裸露的 URL 数组映射到核心数据实体