如何赋值NSMutableDictionary setObject值成为indexPath.section值?

How to assign NSMutableDictionary setObject value to become indexPath.section value?

我有 NSMutableDictionary 和 return 结果如下:-

NSMutableDictionary *result = [NSMutableDictionary new];
        distinctNames = [_aryClippedCategoryList valueForKeyPath:@"@distinctUnionOfObjects.category_id"];
        for (NSString *category_id in distinctNames) {
            NSPredicate *predicate = [NSPredicate predicateWithFormat:@"category_id = %@", category_id];
            NSArray *category_group = [_aryClippedCategoryList filteredArrayUsingPredicate:predicate];
            [result setObject:category_group forKey:category_id];

NSLog(@"123 - %@", result); 
NSLog(@"223 - %lu", (unsigned long)distinctNames.count); 

在 NSLog 123 中,结果将如下所示:-

 17 =     (
                {
            "category_id" = 17;
            "category_name" = "Apparel & Accessories";
            "sub_category_id" = 17;
            "sub_category_name" = "Fashion jewelry";
        },
                {
            "category_id" = 17;
            "category_name" = "Apparel & Accessories";
            "sub_category_id" = 16;
            "sub_category_name" = Wholesale;
        }   
    );
    20 =     (
                {
            "category_id" = 20;
            "category_name" = "Beauty & Personal Care";
             "sub_category_id" = 288;
            "sub_category_name" = "Pedicure & medicure";
        },
                {
            "category_id" = 20;
            "category_name" = "Beauty & Personal Care";
            "sub_category_id" = 285;
            "sub_category_name" = "Fragrances and perfumes";
        }
);

在 NSLog 223 中,结果将如下所示:-

223 - 2

在这种情况下,如何将 select category_group 作为 CollectionView 中的部分值并显示每组项目 (category_id,category_name,sub_category_id,sub_category_name) 在 CollectionView 单元格中?

如果你像这样使用 NSLog:

NSLog(@"123 - %@", result); 
NSLog(@"223 - %lu", (unsigned long)distinctNames.count); 

您明确要求它是一个字符串值,并且将计算 none 个方程。

如果你想将结果打印为整数,你必须这样做:

NSLog(@"%@", 123 - result); 
NSLog(@"%lu", 223 - (unsigned long)distinctNames.count); 

第一个参数是字符串格式,接下来的参数将用于替换此字符串中的%。所以你的计算必须在右侧进行。

为了使其更加可见,最好在 NSLog 之前创建带有结果的局部变量。

  • 不推荐)你应该使用 NSMutableArray 而不是 NSMutableDictionary。

    结构是

    Array<Dictionary<Array *> *> *
    

    代码是这样的

    NSMutableArray *groups = [NSMutableArray new];
    <# your code #>
    [groups addObject:@{
        @"category_id": category_id,
        @"infos": category_group
    }];
    

    然后

    NSString *groupID = groups[indexPath.section][@"category_id"]
    

    这是您需要的部分组值。

    NSArray *infos = groups[indexPath.section][@"infos"];
    NSDictionary *info = infos[indexPath.item];
    

    这是对象 dict 项的值

  • 推荐)或将您的 data 转换为 object。 (对象 NSMutableArray<Object *> *

    然后使用 groups.count 获取部分。

    groups[indexPath.section].categoryID
    

    这是 sections 所需的组值。

    group = groups[indexPath.section]
    object = group.infos[indexPath.item]
    

    这是 items

  • 的对象值