我一直在努力寻找一个解决方案和一个很好的教程来教授 Restkit 的对象映射功能。但是,来自 GITHUB repo 的教程非常不清楚。
这是我收到的对http://baseURL.com/contacts/进行 GET 调用的 JSON
请注意,与其他教程相比,我的 JSON 没有像“ACContact”这样的根密钥路径。
[{
"status":"ACTIVE",
"fax":"555-1212",
"addresses":[
{
"line1":"6 Main Street",
"line2":"",
"city":"Acton"
},
{
...
}
....(other stuff)...
}
...more similar JSONs for the other contacts...
]
我仍然无法弄清楚如何映射子对象地址数组,因此我只是尝试映射该类的其他常规属性:
RKObjectManager *manager = [RKObjectManager objectManagerWithBaseURL: some_URL] ;
[[manager client] setValue:@"true" forHTTPHeaderField:@"SSLClientCipher"] ;
[[manager client] setValue:@"accept" forHTTPHeaderField:@"application/json"] ;
RKObjectMapping * contactMap = [RKObjectMapping mappingForClass:[ACContact class]] ;
[contactMap mapKeyPath:@"status" toAttribute:@"status"] ;
[contactMap mapKeyPath:@"fax" toAttribute:@"fax"] ;
[[manager mappingProvider] addObjectMapping:contactMap] ;
[manager loadObjectsAtResourcePath:@"/contacts" delegate:self] ;
这是我后来收到的错误:
restkit.object_mapping:RKObjectMapper.m:81 添加映射错误:找不到 keyPath 的对象映射:''
restkit.network:RKObjectLoader.m:222 在映射过程中遇到错误:找不到 keyPath 的对象映射:''
1)谁能告诉我这里出了什么问题?请注意,与其他教程相比,我的 JSON 没有像“ACContact”这样的根密钥路径。
对于 JSON 中的状态和传真等简单属性,是否有将值映射到我的联系人类属性的约定。
2)此外,我知道我可以使用关系映射来映射子对象地址,但是当我声明一个 NSMutableArray 来存储联系人内的地址列表时我该怎么做。
3)如果一切正常,如何在解析多个联系人的整个 JSON 时创建联系人列表?
感谢您的时间。布赖恩