포 스퀘어 API에서 내 아이폰 앱으로 데이터를 가져 오는 데 RestKit을 사용하고 있지만 중첩 된 객체에 대한 후속 API 호출에 문제가 있습니다. 특히iOS에서 RestKit - 중첩 된 객체에 대한 후속 API 호출?
는 :
나는 개최지 검색 API는 (https://developer.foursquare.com/docs/venues/search) 개최 장소의 목록을 검색하기 위해 호출합니다. 각 Venue에는 응답에 포함 된 고유 한 ID가 있습니다. 나는 나의의 ViewController에서 다음과 같이이 작업을 수행 :
[objectManager loadObjectsAtResourcePath:[NSString stringWithFormat:@"%@?%@", [URL resourcePath], [URL query]] delegate:self];
내가 다음 RestKit 매핑 등을하고 데이터 배열의 개최지를 저장합니다. 여기까지 잘 작동하는 모든 것.
이 시점에서 데이터 배열의 Venues를 반복하며 각 Venue에 대한 자세한 정보를 검색하기 위해 후속 API 호출을 수행해야합니다. 각 Venue에 대해 고유 ID를 사용하고 Venue 세부 API (https://developer.foursquare.com/docs/venues/venues)를 호출합니다. 이 부분은 나를 괴롭히는 부분입니다. 이 두 번째 API 호출에서 반환 된 Photo 개체의 NSArray를 가져 오려고합니다. 이 중 지금까지 내가 시도 변동 :
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]; }
내 매핑 :
@property (strong, nonatomic) NSArray *photos;
Venue.photos 항상 반환 :
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
내 장소 클래스는이있다 빈. 어떤 제안?
감사 폴, 당신은 사진 응답은 연결되지 않은 한 그 권리 어디서나 장소. 맵핑을 수정 한 후에 작동 시키지만 RKObjectLoader의 targetObject 속성을 사용하지 않았습니다. 대신에 willMapData를 사용하여 정사각형 응답을 필요한 형식으로 수정했습니다. 곧 내가 어떻게했는지에 대한 대답을 추가 할 것입니다. –