2012-02-26 18 views
1

私はちょうどRestKitの学習を始めました。私はFoursquare apisを使って近くの会場に行くのに使っています。しかし、 "objectLoader:(RKObjectLoader *)objectLoader didLoadObjects:(NSArray *)objects"という警告が表示されます。警告:ネストされたオブジェクトのマッピングに失敗しました:(null) "RestKit警告 - 警告:ネストされたオブジェクトのマッピングに失敗しました:(null)

私は本当に混乱しています。以下は、initメソッドである私のマッピングコードです:

NSString *resourceURLString = [NSString stringWithFormat:@"/v2/venues/search?ll=%f,%f&limit=10&client_id=LEA1MYN1Z1QWSBFIOA1T4FREVVNF0R1ADQKMA0AMGL3CN5N4&client_secret=M2W204MKEAO4KV5L4ZXUYWK2GC32PO0KT5PWYJQBP4FKBTMO",newLocation.coordinate.latitude, newLocation.coordinate.longitude]; 

    [[RKObjectManager sharedManager] loadObjectsAtResourcePath:resourceURLString delegate:self]; 
[_locationManager stopUpdatingLocation]; 

_objectManager = [RKObjectManager objectManagerWithBaseURL:@"https://api.foursquare.com"]; 

    RKObjectMapping *locationMapping = [RKObjectMapping mappingForClass:[Location class]]; 
    [locationMapping mapKeyPath:@"address" toAttribute:@"address"]; 
    [locationMapping mapKeyPath:@"city" toAttribute:@"city"]; 
    [locationMapping mapKeyPath:@"state" toAttribute:@"state"]; 
    [_objectManager.mappingProvider setMapping:locationMapping forKeyPath:@"location"]; 

    RKObjectMapping *venueMapping = [RKObjectMapping mappingForClass:[Groups class]]; 
    [venueMapping mapRelationship:@"location" withMapping:locationMapping]; 
    [_objectManager.mappingProvider setMapping:venueMapping forKeyPath:@"groups"]; 

    RKObjectMapping *responseMapping = [RKObjectMapping mappingForClass:[Response class]]; 
    [responseMapping mapRelationship:@"groups" withMapping:venueMapping]; 
    [_objectManager.mappingProvider setMapping:responseMapping forKeyPath:@"response"]; 

    return self; 

次のように ":(CLLocationManager *)マネージャーdidUpdateToLocation:(CLLocation *)newLocation fromLocation(CLLocation *)oldLocation locationManager" のコードです

、最終的には、このコードがでている以下の

_objects = [objects retain]; 
NSLog(@"object that i receive is %@",objects); 

"をobjectLoader:(RKObjectLoader *)objectLoader didLoadObjects(NSArrayの*)オブジェクト" 私を得る反応でありますNコンソール:

2012-02-26 13:15:39.872 restKitPractice [8609:690B] restkit.object_mapping W:RKObjectMappingOperation.m:372 WARNING:失敗マッピングネストされたオブジェクト(ヌル) 2012-02-26 13 :15:39.873 restKitPractice [8609:207]オブジェクト私が受けている( "応答:0x6b5cb20" ):

https://api.foursquare.com/v2/venues/search?ll=40.562362,-111.938689&limit=10&client_id=LEA1MYN1Z1QWSBFIOA1T4FREVVNF0R1ADQKMA0AMGL3CN5N4&client_secret=M2W204MKEAO4KV5L4ZXUYWK2GC32PO0KT5PWYJQBP4FKBTMO

でもあなたがこのリンクを使用して、フォースクエアから会場JSONを確認することができます

私が実際であるので、助けや提案が高く評価されます。この問題で苦労している。

おかげ ヴィク

答えて

0

あなたはobject mapping docsを見てみる必要があります。

あなたのマッピング定義が解析しようとしているjsonと一致しません。

0

これは古い質問ですが、私は同じ警告を見ました。原因は、オブジェクトにマップするこの{"response":{}}のようなJSONがあることです。オブジェクトにはキーが存在しないため、基本的にはnilにマッピングされます。だから、警告はかなり無害です。 Responseオブジェクトを返すことはありません。なぜなら、サーバーはRestKitがマップできないものを本質的に戻しました。これは、JSON内に属性マッピングに一致するキーがないためです。 RestKitは、警告を出してオブジェクトを作成しないことに戻ることを知らせます。

関連する問題