次のようなネストされたリソース URL を使用して、アルバム内の写真を取得しようとしています。
GET http://www.myapi.com/albums/:album_id/photos
これを実現する最も単純な方法は、AFRESTClient のサブクラスで pathForEntity 関数をオーバーライドすることです。ただし、アルバム オブジェクトへのアクセス権がないため、album_id を含む URL を返すことができません。これを達成するには、どのようにオーバーライド/拡張する必要がありますか? これを行う方法については、以下を参照してください。アルバム ID を提供できない疑問符に注意してください。
- (NSString *)pathForEntity:(NSEntityDescription *)entity {
NSString *path = AFPluralizedString(entity.name);
if ([entity.name isEqualToString:@"Photo"]) {
path = [NSString stringWithFormat:@"albums/%d/photos", ??];
}
return path;
}
スタックの上位には、これが PhotosViewController -viewDidLoad にあります
- (void)viewDidLoad
{
[super viewDidLoad];
self.title = self.currentAlbum.name;
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Photo"];
fetchRequest.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"createdAt" ascending:NO]];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"album == %@", self.currentAlbum];
fetchRequest.predicate = predicate;
self.fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:self.managedObjectContext sectionNameKeyPath:nil cacheName:nil];
self.fetchedResultsController.delegate = self;
[self.fetchedResultsController performFetch:nil];
}
ありがとう!