0

我正在使用 RestKit 处理来自 API 的数据。

我想获得一份企业清单,并且正在正确地恢复它。然而,一旦我得到该列表,我需要删除所有属于“麦当劳”的企业,然后才能将结果显示UITableView.

示例响应:

"venue": [{
    "name": "X Business", {

没有办法在 API 响应之前删除这些结果,有没有办法在我得到 API 响应但在我显示结果之前执行此操作UITableView

编辑:

视图控制器

@property (strong, nonatomic) NSArray *springs;
@property (strong, nonatomic) NSMutableArray *leafs;


    - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
    {
        static NSString *CellIdentifier = @"standardCell";
        UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

        Spring *spring = [springs objectAtIndex:indexPath.section];  // 13 objects
        Leaf *leaf = [spring.leafs objectAtIndex:indexPath.row];  // 30 objects

        cell.textLabel.text = leaf.shortName;
        return cell;
    }

编辑 2: Response.m 是模型

@implementation Response

+ (RKObjectMapping *)mapping {
    RKObjectMapping *objectMapping = [RKObjectMapping mappingForClass:[self class] usingBlock:^(RKObjectMapping *mapping) {
        [mapping mapKeyPathsToAttributes:
         @"premium", @"premium",
         nil];
    }];

    return objectMapping;
}

@end
4

2 回答 2

1

您可能只想使用 NSPredicate 过滤从 API 获得的数组,例如,如果数组中的每个对象(例如 Spring 在您的情况下)都具有 businessName 属性:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"businessName = %@", @"McDonalds"];
NSArray *filteredArray = [self.springs filteredArrayUsingPredicate:predicate];
于 2013-05-23T03:10:24.153 回答
1

RestKit 可以使用 KVC 对传入数据进行验证,因此您可以在映射过程中过滤传入数据(在映射过程中您将节省时间和精力,并且不必处理后处理结果)。

在此处查看文档。

于 2013-05-23T06:17:22.697 回答