[英]RestKit - Could not find an object mapping for keyPath: ''
以下代碼產生此錯誤。
- (void)viewDidLoad
{
RKObjectManager * manager = [RKObjectManager objectManagerWithBaseURLString:@"http://localhost:3000"];
RKObjectMapping *contactMapping = [RKObjectMapping mappingForClass:[Contact class]];
[contactMapping mapKeyPathsToAttributes:
@"nom", @"nom",
@"prenom", @"prenom",
@"telephone", @"telephone",
@"commentaires", @"description",
nil];
[manager.mappingProvider setMapping:contactMapping forKeyPath:@"/contacts.json"];
[manager loadObjectsAtResourcePath:@"/contacts.json" delegate:self];
}
我不知道如何將ressource路徑與映射匹配。 任何的想法 ?
日志是:
2012-09-18 11:07:30.811 MyApp[28507:fb03] I restkit:RKLog.m:33 RestKit initialized...
2012-09-18 11:07:30.816 MyApp[28507:fb03] mapping : <RKObjectMappingProvider: 0x6c1c860>
2012-09-18 11:07:30.837 MyApp[28507:fb03] I restkit.network.reachability:RKReachabilityObserver.m:391 Network availability has been determined for reachability observer <RKReachabilityObserver: 0x6c51e60 host=localhost isReachabilityDetermined=YES isMonitoringLocalWiFi=NO reachabilityFlags=-R -----l->
2012-09-18 11:07:30.886 MyApp[28507:fb03] I restkit.network:RKRequest.m:680 Updating cache date for request <RKObjectLoader: 0x6c54ec0> to 2012-09-18 11:07:30 +0000
2012-09-18 11:07:30.892 MyApp[28507:11503] W restkit.object_mapping:RKObjectMapper.m:87 Adding mapping error: Could not find an object mapping for keyPath: ''
2012-09-18 11:07:30.893 MyApp[28507:11503] E restkit.network:RKObjectLoader.m:231 Encountered errors during mapping: Could not find an object mapping for keyPath: ''
2012-09-18 11:07:30.914 MyApp[28507:fb03] Error : [didFailWithError]
並且json響應如下(它來自Ruby on Rails Rest API):
[
{"commentaires":"bla bla",
"created_at":"2012-09-17T21:15:55Z","id":1,
"nom":"name 1",
"prenom":"surname A",
"telephone":"+33687330913",
"updated_at":"2012-09-17T21:22:34Z"},
{"commentaires":"bla bla",
"created_at":"2012-09-17T21:22:20Z","id":2,
"nom":"name 2",
"prenom":"surname 2",
"telephone":"",
"updated_at":"2012-09-17T21:22:20Z"}
]
KeyPath不是您的json文件的名稱,而是RestKit的起點:
{
"contact": {
"nom": "whatever nom is",
"prenom": "same for prenom",
// ...
}
// ...
}
在這種情況下,“contact”將是您的keyPath: [manager.mappingProvider setMapping:contactMapping forKeyPath:@"contact"];
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.