从字典数组中获取索引(对于UICollectionView)

时间:2014-09-04 17:46:50

标签: ios7 uicollectionview nspredicate nsindexset

我有一个UICollectionView,我用嵌套数组填充,以帮助我在UICollectionView中创建部分。我用来填充UICollectionView的最终数组如下所示,每个嵌套数组代表我视图中的不同部分:

 Array
    Array
       Dictionary
          txt
          utc
          ...
       Dictionary
          txt
          utc
          ...
    Array
       Dictionary
          txt
          utc
          ...

我希望用户能够根据txt(或字典的其他元素)过滤集合视图,然后使用- (void)insertItemsAtIndexPaths:(NSArray *)indexPaths;- (void)deleteItemsAtIndexPaths:(NSArray *)indexPaths;为视图中的更改设置动画。

我需要帮助的地方

我很难尝试为上面提到的方法创建我需要的NSArray NSIndexSets。似乎indexesOfObjectsPassingTest NSIndexSets会涉及但我无法使其正常工作,我能找到的任何示例通常只适用于单个数组(How retrieve an index of an NSArray using a NSPredicate?)而我没有能够为我的目的调整代码。

非常感谢任何帮助的代码。提前致谢。

1 个答案:

答案 0 :(得分:0)

我可以通过嵌套for循环来创建NSArray(我对此并不感到兴奋)但是它可以工作。如果您有更有效的方法来创建阵列,请告诉我!

NSMutableArray *arrayOfIndexes = [[NSMutableArray alloc]init];

    for (int i = 0; i < [finalCellData count]; i++) {

        for (int ii = 0; ii < [[finalCellData objectAtIndex:i] count]; ii++) {

            if (![[[[finalCellData objectAtIndex:i]objectAtIndex:ii]valueForKey:@"txt"] isEqualToString:@""]) {

                NSIndexPath *indexPath = [NSIndexPath indexPathForRow:ii inSection:i];
                [arrayOfIndexes addObject:indexPath];
            }
        }
    }