我正在使用 RestKit 将数据从 Foursquare API 提取到我的 iphone 应用程序中,但是在嵌套对象的后续 API 调用中遇到了问题。
具体来说:
我调用场地搜索 API (https://developer.foursquare.com/docs/venues/search) 来检索场地列表。每个 Venue 都有一个唯一的 ID,该 ID 包含在响应中。我在 ViewController 中使用以下内容执行此操作:
[objectManager loadObjectsAtResourcePath:[NSString stringWithFormat:@"%@?%@", [URL resourcePath], [URL query]] delegate:self];
然后我进行 RestKit 映射等并将场地存储在数据数组中。到目前为止一切正常。
此时,我遍历数据数组中的场地,并且必须进行后续 API 调用以检索有关每个场地的更多详细信息。对于每个 Venue,我使用唯一 ID 并调用 Venue detail 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]; }
在我的映射中:
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 总是返回空。有什么建议么?