RestKit 对象映射将 ID 映射为完全不同的负数

Posted

技术标签:

【中文标题】RestKit 对象映射将 ID 映射为完全不同的负数【英文标题】:RestKit object mapping maps an ID as a totally different negative number 【发布时间】:2015-10-20 23:51:53 【问题描述】:

我有一个 ios 应用程序,它使用 RestKit 从我们的服务器端 API 中提取 JSON 格式的数据。我已经研究了大约一年,但我以前从未见过这种情况 - 由于某种原因,RestKit 似乎将 ID 1047470 映射为 -1106。

看起来可能是错误代码,但我不知道为什么它会显示为映射值,而不是实际错误。其他被映射的 ID 可以正常工作,就像我们正在使用的许多其他实体中的所有其他 ID(据我所知)一样。

对象映射调试日志的摘录如下。 (我还没有映射某些值,因为此时不需要它们。)

2015-10-21 10:27:50.577 App[13381:9422581] D restkit.object_mapping:RKMapperOperation.m:327 Found mappable collection at keyPath 'members': (
    
        accountName = "Test Account Name";
        memberEmail = "test##test.com";
        memberFirstName = TestFirst;
        memberId = 1047470;
        memberLastName = "TestLast";
        planId = 1;
        smsConfirm = 0;
    
)
2015-10-21 10:27:50.578 App[13381:9422581] D restkit.object_mapping:RKMapperOperation.m:251 Asked to map source object 
    accountName = "Test Account Name";
    memberEmail = "test##test.com";
    memberFirstName = TestFirst;
    memberId = 1047470;
    memberLastName = "TestLast";
    planId = 1;
    smsConfirm = 0;
 with mapping <RKEntityMapping:0x7ff3c86eaf10 objectClass=Member propertyMappings=(
    "<RKAttributeMapping: 0x7ff3c86eb360 memberId => memberId>",
    "<RKAttributeMapping: 0x7ff3c86ebd10 smsConfirm => smsConfirm>",
    "<RKAttributeMapping: 0x7ff3c86eca20 planId => planId>"
)>
2015-10-21 10:27:50.578 App[13381:9422581] D restkit.object_mapping:RKMappingOperation.m:1159 Starting mapping operation...
2015-10-21 10:27:50.579 App[13381:9422581] D restkit.object_mapping:RKMappingOperation.m:1244 Finished mapping operation successfully...
2015-10-21 10:27:50.584 App[13381:9422581] D restkit.object_mapping:RKMapperOperation.m:433 Finished performing object mapping. Results: 
    members =     (
        "<Member: 0x7ff3cd542a90> (entity: Member; id: 0x7ff3d3bd1ab0 <x-coredata:///Member/tC7917ADF-B44F-481D-BF96-F4F4C03B18AF3> ; data: \n    memberId = \"-1106\";\n    planId = 1;\n    smsConfirm = 0;\n)"
    );

有人知道为什么会这样吗?

【问题讨论】:

【参考方案1】:

解决了我自己的问题 - 小学生完全错误。 memberId 是一个整数 16,这意味着 1047470 对它来说太大了。我已更改为 Integer 32,它工作正常。菜鸟。

【讨论】:

以上是关于RestKit 对象映射将 ID 映射为完全不同的负数的主要内容,如果未能解决你的问题,请参考以下文章

RestKit 不喜欢为 POST 响应映射不同的对象

Restkit 无法为 keyPath 添加映射

使用 RESTKit 将 url 参数映射到对象

来自 JSON 的 RestKit 对象映射

JSOG API 对象的 RestKit 映射

RestKit - 将数组的键路径映射到该数组内的对象