根据objective c中得到的json隐藏行和节

Posted

技术标签:

【中文标题】根据objective c中得到的json隐藏行和节【英文标题】:Hiding rows and sections on the basis of json obtained in objective c 【发布时间】:2017-04-25 05:13:34 【问题描述】:

我有一个视图控制器,(比如 ViewcontrollerA)。它上面有 tableView 和 tableViewCells。

tableView 有三个部分(section0,section1,section2)。

    Section0 有两行,

    2.section1 有 9 行和

    3.section2 有 2 行。

我有一个json如下:

  "Error": null,
        "isModifiable":1,
        "Check":1,
        "Data": [
                  "section": 1,
                  "row": 2
                  , 
                  "section": 1,
                  "row": 3
                  , 
                  "section": 1,
                  "row": 5
                  , 
                  "section": 0,
                  "row": 1
                  , 
                  "section": 2,
                  "row": 0
                  ] 

在这里,在这个 json 部分中,给出了要 hdden 的行。但我只能访问数组 [object at indexpath:0]

但是,实际上我想同时访问数组中的所有字典。以下是我使用的代码。请查看并建议要进行的更正。

提前致谢!

这是我的代码:

  - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
    
        NSDictionary * values=[self getTheRowsAndSectionDetailsFromJson];
        NSArray *tasks=[values objectForKey:@"Data"];
        NSDictionary* taskDic=[tasks objectAtIndex:0];
        NSInteger  rows=[[taskDic valueForKey:@"row"]intValue];
        NSLog(@"%ld",(long)rows);
        NSInteger  section=[[taskDic valueForKey:@"section"]intValue];
        NSLog(@"%ld",(long)section);


        if([[values objectForKey:@"isModifiable"]boolValue])
        
            if((indexPath.row==rows
                )&&indexPath.section==section)
            
                return 0.0;
            
            else

                return 39.6;
        
        else
            return 39.6;

    

    -(NSDictionary*)getTheRowsAndSectionDetailsFromJson
    
        NSString *filePath = [[NSBundle mainBundle] pathForResource:@"data" ofType:@"json"];
        NSData *data = [NSData dataWithContentsOfFile:filePath];
        NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];
        NSLog(@%@",dict);
        return dict;

    

【问题讨论】:

【参考方案1】:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(section == %@)",@(indexPath.section)];
NSArray *filteredArray = [[dataArray filteredArrayUsingPredicate:predicate] valueForKeyPath:@"row"];
if([filteredArray containsObject:[NSNumber numberWithInteger:@(indexPath.row)]])
    return 0.0;

【讨论】:

以上是关于根据objective c中得到的json隐藏行和节的主要内容,如果未能解决你的问题,请参考以下文章

在 Objective c 中难以处理 json 格式

如何在 Objective C 中解析 JSON 格式

获取嵌套的自定义字段 JSON Objective C

在Objective C中按顺序保持JSON对象的字典键

从Objective C中的字符串获取JSON URL

qtabelwidget怎么得到指定行和列的值