RestKitを使用してFoursquareAPIからiphoneアプリにデータをプルしていますが、ネストされたオブジェクトのフォローアップAPI呼び出しで問題が発生しています。
具体的には:
会場検索API(https://developer.foursquare.com/docs/venues/search)を呼び出して、会場のリストを取得します。各会場には、応答に含まれる一意のIDがあります。これは、ViewControllerで次のように行います。
[objectManager loadObjectsAtResourcePath:[NSString stringWithFormat:@"%@?%@", [URL resourcePath], [URL query]] delegate:self];
次に、RestKitマッピングなどを実行し、会場をデータ配列に格納します。ここまではすべて正常に機能しています。
この時点で、データ配列内の会場をループし、フォローアップAPI呼び出しを行って、各会場に関する詳細を取得する必要があります。会場ごとに、一意のIDを使用して、会場詳細API(https://developer.foursquare.com/docs/venues/venues)を呼び出します。これは私を困惑させる部分です。この2番目の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は常に空を返します。助言がありますか?