根据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隐藏行和节的主要内容,如果未能解决你的问题,请参考以下文章