我有一些json数据有一些文件。它有4个部分 - 每个部分都有一些数据或没有数据。我需要显示每个部分的数据
我的问题是:
答案 0 :(得分:2)
您的代码需要进行一些更改。试试下面的内容。
在viewDidLoad中,
[self getdata];
[self.mycollectionView reloadData];
在getdata方法中,
NSArray *arrayFiles = [NSArray arrayWithObjects: dictOriginal, dictOriginal2, dictOriginal3, dictOriginal4, nil];
for (NSDictionary *dict in arrayFiles) {
NSMutableArray *arr = [NSMutableArray array];
NSArray *a = dict[@"files"];
for(int i=0; i < a.count; i ++) {
NSString *strName = [NSString stringWithFormat:@"%@",[[dict[@"files"] objectAtIndex:i] valueForKey:@"name"]];
NSLog(@"str: %@", strName);
[arr addObject:strName];
}
[arrayPDFName addObject:arr];
}
在numberOfItemsInSection中,
return ((NSArray *)arrayPDFName[section]).count;
在cellForRowAtIndexPath中,
cell.myLabel.text = arrayPDFName[indexPath.section][indexPath.row];
为章节标题
执行此操作titleArray = [NSMutableArray array];
在getdata方法中,
NSDictionary *dictOriginal = jsonResults[@“white”];
[titleArray addObject:[NSString stringWithFormat:@"white(%d)", dictOriginal[@"count"]]];
对dictOriginal2,dictOriginal3,dictOriginal4执行相同的操作。
在viewForSupplementaryElementOfKind中,
header.myHeaderLabel.text = titleArray[indexPath.section]
在numberOfSectionsInCollectionView中,
-(NSInteger) numberOfSectionsInCollectionView:(UICollectionView *)collectionView {
return titleArray.count;
}
答案 1 :(得分:1)
您似乎可能在拥有任何数据之前设置了集合视图。
如果我告诉您输入的日志每次都返回0, 0, 0, 0
,则arrayPDFName
为空。
尝试在[self.collectionView reloadData];
方法的末尾调用getdata
。
如果这不是问题,那么您可能会将项目添加到arrayPDFName
数组中出现问题。
编辑:
尝试:
NSArray *arr = [NSArray arrayWithObjects: dictOriginal[@"files"], dictOriginal2[@"files"], dictOriginal3[@"files"], dictOriginal4[@"files"], nil];
编辑:
您在每个部分看到4个项目,因为您在arrayPDFName.count;
中返回numberOfItemsInSection:
。
相反,您想要返回内部文件的计数:
return arrayPDFName[section][@"count"];