2012-01-12 50 views
0

在此先感謝您的所有幫助社區!我有一個早期的問題,這是我指出的,我解決了「[人員對象] - 應該 - > [人員分配]初始化]我修復了,現在可以添加一個人對象,現在我的服務器。問題所有在服務器上的值都爲空,並且返回1001代碼Code = 1001「找不到KeyPath的對象映射:''」UserInfo = 0x5938ce0 {= RKObjectMapperKeyPath,NSLocalizedDescription =找不到KeyPath的對象映射: 「」} 什麼我映射不對任何想法?Noobie這裏是所提供的任何幫助,不勝感激! 喔啊很願意,如果你在南加州的支付經驗在這個問題上,日Thnx了!RESTkit代碼1001找不到keyPath對象:「'」

RKObjectMapping* userMapping = [RKObjectMapping mappingForClass:[Person class]]; 
[userMapping mapKeyPath:@"updated_at" toAttribute:@"updatedAt"]; 
[userMapping mapKeyPath:@"created_at" toAttribute:@"createdAt"]; 
[userMapping mapKeyPath:@"name" toAttribute:@"name"]; 
[userMapping mapKeyPath:@"id" toAttribute:@"personId"]; 

RKObjectMapping* dogMapping = [RKObjectMapping mappingForClass:[Dog class]]; 
[dogMapping mapKeyPath:@"created_at" toAttribute:@"createdAt"]; 
[dogMapping mapKeyPath:@"person_id" toAttribute:@"spersonId"]; 
[dogMapping mapKeyPath:@"name" toAttribute:@"name"]; 
[dogMapping mapKeyPath:@"updated_at" toAttribute:@"updatedAt"]; 
[dogMapping mapKeyPath:@"id" toAttribute:@"dogId"]; 

RKObjectMapping *dataMapping = [RKObjectMapping mappingForClass:[Data class]]; 
[dataMapping mapKeyPath:@"dog" toAttribute:@"dogs"]; 
[dataMapping mapKeyPath:@"person" toRelationship:@"person" withMapping:userMapping]; 
[[RKObjectManager sharedManager].mappingProvider addObjectMapping:dataMapping]; 

[[RKObjectManager sharedManager].mappingProvider setMapping:userMapping 
forKeyPath:@"people"]; 

RKObjectRouter * router = [RKObjectManager sharedManager].router; 
[router routeClass: [Person class] toResourcePath:@"/people/:personId"]; 
[router routeClass: [Person class] toResourcePath:@"/people" 
forMethod:RKRequestMethodPOST]; 

RKObjectMapping *personSerializationMapping= [RKObjectMapping mappingForClass: 
[NSMutableDictionary class]]; 
[personSerializationMapping mapAttributes:@"name", nil]; 
[[RKObjectManager sharedManager].mappingProvider 
setSerializationMapping:personSerializationMapping forClass: [Person class]]; 

Person* daveLiu =[[[Person alloc]init]autorelease]; 
daveLiu.name = @"dave"; 
[[RKObjectManager sharedManager] postObject:daveLiu delegate:self]; 
+0

你想發佈到服務器或從服務器讀取? – chourobin 2012-03-14 10:12:35

回答

1

所有我的服務器中的對象是「匿名的」,並且我有與RestKit無法相同的問題找到正確的映射。我固定它的方式是使用的ObjectManager方法,讓我有映射:所以現在

[objectManager postObject:object mapResponseWith:[object objectMapping] delegate:self]; 
[objectManager loadObjectsAtResourcePath:path objectMapping:mapping delegate:self]; 

我的合同,所有來自這樣的服務器:

{ 
    "Id": "12345678-1234-1234-1234-1234567890ab", 
    "Type": "SURVEY", 
    "Code": "1234", 
    "Description": "blah blah blah", 
    "Message": "blah blah blah", 
    "Url": "http://nowhere.com/", 
    "NextAttemptHours": 4 
} 

可以映射到正確的對象。讓對象映射可用,這是一項額外的工作,但它完成了這項工作。我通過在我的對象上實現一個類方法來做到這一點,以返回適當的objectMapping,它使事情變得非常乾淨和易於理解。

相關問題