我正在使用RestKit將數據從Foursquare API拖入我的iphone應用程序,但遇到嵌套對象的後續API調用問題。iOS上的RestKit - 嵌套對象的後續API調用?
具體做法是:
我所說的場地搜索API(https://developer.foursquare.com/docs/venues/search)來檢索地點的完整列表。每個場館都有一個唯一的ID,包含在回覆中。我這樣做,在我的ViewController如下:
[objectManager loadObjectsAtResourcePath:[NSString stringWithFormat:@"%@?%@", [URL resourcePath], [URL query]] delegate:self];
我那麼做RestKit映射等,並儲存場地的數據陣列。一切正常工作到這裏。
此時我循環訪問數據數組中的Venues,並且必須進行後續API調用才能檢索每個Venue的更多詳細信息。對於每個場館,我使用唯一的ID並呼叫Venue詳細API(https://developer.foursquare.com/docs/venues/venues)。這是困擾我的部分。我試圖從這個第二個API調用返回一個NSArray的Photo對象。這到目前爲止,我曾嘗試變化:
for (id venue in self.data){ Venue *myvenue = (Venue *)venue; RKURL *URL = [RKURL URLWithBaseURL:[objectManager baseURL] resourcePath:[NSString stringWithFormat:@"/venues/%@", myvenue.venueid] queryParameters:queryParams]; [objectManager loadObjectsAtResourcePath:[NSString stringWithFormat:@"%@?%@", [URL resourcePath], [URL query]] delegate:self]; }
,並在我的映射:
RKObjectMapping *photosMapping = [RKObjectMapping mappingForClass:[Photo class]]; [photosMapping mapKeyPathsToAttributes:@"url", @"imageURL", nil]; [venueMapping mapRelationship:@"photos" withMapping:photosMapping]; [objectManager.mappingProvider setMapping:photosMapping forKeyPath:@"response.photos"]; // not sure if this keypath is for the second API call
和我的場館類有這樣的:
@property (strong, nonatomic) NSArray *photos;
Venue.photos總是返回空。有什麼建議麼?
謝謝保羅,你的權利,這些照片反應是不掛了場地。我修改了映射後得到了它的工作,但是沒有使用RKObjectLoader的targetObject屬性,但是我使用了willMapData來將foursquare響應修改爲我需要的格式。我將很快就會做出答案。 – 2012-07-10 07:06:49