【问题标题】:Get index (for UICollectionView) from an Array of Array of Dictionaries从字典数组中获取索引(用于 UICollectionView)
【发布时间】:2014-09-04 17:46:50
【问题描述】:

我有一个UICollectionView,我正在用一个嵌套数组填充它,以帮助我在我的 UICollectionView 中创建部分。我用来填充UICollectionView 的最终数组看起来像这样,每个嵌套数组代表我视图中的不同部分:

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

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

我需要帮助的地方

我一直在尝试创建上面提到的方法所需的NSIndexSetsNSArray。似乎indexesOfObjectsPassingTestNSIndexSets 会参与其中,但我无法使其正常工作,而且我能找到的任何示例通常仅适用于单个数组(How retrieve an index of an NSArray using a NSPredicate?),我无法调整代码为了我的目的。

任何可以提供帮助的代码将不胜感激。提前致谢。

【问题讨论】:

    标签: ios7 uicollectionview nspredicate nsindexset


    【解决方案1】:

    我可以通过嵌套 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];
                }
            }
        }
    

    【讨论】:

      猜你喜欢
      • 2019-09-21
      • 2023-01-23
      • 2016-08-31
      • 2021-05-25
      • 1970-01-01
      • 2019-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多