Ios 具有嵌套资源的AFRESTClient pathForEntity?

Ios 具有嵌套资源的AFRESTClient pathForEntity?,ios,afnetworking,afincrementalstore,Ios,Afnetworking,Afincrementalstore,我正在尝试使用嵌套的资源URL在相册中获取照片,如: GET http://www.myapi.com/albums/:album_id/photos 实现这一点最简单的方法似乎是重写AFRESTClient子类中的pathForEntity函数。但是,我没有访问album对象的权限,因此无法返回包含album_id的URL。我应该如何覆盖/扩展以实现这一点?请参见下文,了解我是如何做到这一点的,请注意我无法提供唱片集ID的地方的问号: - (NSString *)pathForEntity:

我正在尝试使用嵌套的资源URL在相册中获取照片,如:

GET http://www.myapi.com/albums/:album_id/photos
实现这一点最简单的方法似乎是重写AFRESTClient子类中的pathForEntity函数。但是,我没有访问album对象的权限,因此无法返回包含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;
}
在堆栈的更高层,我在PhotoViewController-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];
}

谢谢

我们有一个类似的层次结构,最终在AFRESTClient子类中实现了pathForRelationship:forObject:method。对于你的相册和照片,我想应该是这样的:

- (NSString *)pathForRelationship:(NSRelationshipDescription *)relationship
                        forObject:(NSManagedObject *)object
{
    if ([object isKindOfClass:[Album class]] && [relationship.name isEqualToString:@"photos"]) {
        Album *album = (Album*)object;
        return [NSString stringWithFormat:@"/albums/%@/photos", album.album_id];
    }
    return [super pathForRelationship:relationship forObject:object];
}

这是假设您的模型中设置了toMany关系。

您找到解决方案了吗?