0

只有当我的 AFNetworking 请求将 json 对象返回为 true 时,我才想显示一个 tableview 单元格。在此示例中,我需要将 place = "Store" 设置为 true,以便显示仅显示商店的表格视图。

place = "Store" json 在以下请求中作为我的 location_results 数组的一部分返回,我将其存储在self.place = [dictionary objectForKey:@"place"];

- (void)viewDidLoad
{
    [super viewDidLoad];


    // LoadLocations

  [[LocationApiClient sharedInstance] getPath:@"locations.json" parameters:nil                                     success:^(AFHTTPRequestOperation *operation, id response) {
    NSLog(@"Response: %@", response);
    NSMutableArray *location_results = [NSMutableArray array];
    for (id locationDictionary in response) {
        Location *location = [[Location alloc] initWithDictionary:locationDictionary];
        [location_results addObject:location];

    }
    self.location_results = location_results;
    [self.tableView reloadData];
}
                                    failure:^(AFHTTPRequestOperation *operation, NSError *error) {
                                        NSLog(@"Error fetching locations!");
                                        NSLog(@"%@", error);

                                    }];

我知道我需要从改变开始

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
    return self.location_results.count;
}

但不确定如何。

然后我应该能够添加一个条件语句

- (LocationCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    static NSString *cellIdentifier = @"LocationCell";

但不确定如何。

4

2 回答 2

1

如果您有所有结果的工作代码,那么结果子集的工作代码很简单。用 替换对 的引用self.location_results[self filteredLocationResults]实现如下:

- (NSArray *)filteredLocationResults {

    return [self.location_results filteredArrayUsingPredicate:
        [NSPredicate predicateWithFormat:@"(%K like %@)". @"place" ,@"Store"]];
}
于 2013-03-29T22:39:57.007 回答
1

您可以将“存储”项放入表的数据源中:

for (id locationDictionary in response) {
    Location *location = [[Location alloc] initWithDictionary:locationDictionary];
    if([[location objectForKey:@"place"] isEqualToString:@"Store"]) // Add this line
        [location_results addObject:location];

}
于 2013-03-29T23:22:04.020 回答