首页 > 解决方案 > 如何使用数组方法在模型中添加多个项目?

问题描述

我有一个正常工作的原始代码如下: -

- (ZYSideSlipFilterRegionModel *)commonFilterRegionModelWithKeyword:(NSString *)keyword selectionType:(CommonTableViewCellSelectionType)selectionType {
    ZYSideSlipFilterRegionModel *model = [[ZYSideSlipFilterRegionModel alloc] init];
    model.containerCellClass = @"SideSlipCommonTableViewCell";
    model.regionTitle = keyword;
    model.customDict = @{REGION_SELECTION_TYPE:@(selectionType)};
    model.itemList = @[[self createItemModelWithTitle:[NSString stringWithFormat:@"Local"] itemId:@"0" selected:NO],
    [self createItemModelWithTitle:[NSString stringWithFormat:@"Oversea"] itemId:@"1" selected:NO]];
    return model;
}

现在,我打算将静态值(海外/本地)更改为动态值。但只会显示 1 个项目。

for (int i = 0; i < filteredArray.count; i++) {
    int intItemID = i + 1;
    NSString *myNewString = [NSString stringWithFormat:@"%i", intItemID];
    model.itemList = @[[self createItemModelWithTitle:[filteredArray[i] valueForKey:@"attribute_name"] itemId:myNewString selected:NO] ];
}

如何将 2 项放入 model.itemList?请帮忙。谢谢你。

标签: iosobjective-carrays

解决方案


你可以使用这种方式

//step:1 像这样获取字典

   for (int i = 0; i < filteredArray.count; i++) 
{

    NSMutableDictionary *dict = (NSMutableDictionary *)filteredArray[i] ;
    int intItemID = i + 1;
    NSString *myNewString = [NSString stringWithFormat:@"%i", intItemID];
    model.itemList = @[[self createItemModelWithTitle:dict];
}

//第2步:您可以像这样定义模型的方法

- (CommonItemModel *)createItemModelWithTitle:(NSMutableDictionary *)dictModel
 {

    CommonItemModel *model = [[CommonItemModel alloc] init];
    model.itemId = [dictModel valueForKey : @"itemId"];
    model.itemName = [dictModel valueForKey:@"itemTitle"];
    model.selected = [dictModel valueForKey:[NSNumber numberWithBool: 
    [[dictModel valueForKey:@"selected"]]]];

    return model;

 }

//还有一件事你在第一步写这个

    model.itemList = @[[self createItemModelWithTitle:dict];

But the method only return the Model class (CommonItemModel) so if you need any help you shared here

谢谢 :)


推荐阅读