2

次のようなネストされたリソース 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];
}

ありがとう!

4

1 に答える 1