zoukankan      html  css  js  c++  java
  • 数组中存放model去重

    在这个项目中出现"添加model数据"数组重复的情况,这就涉及到数组去重的问题了......

    1.

    一开始使用的最笨的方法: 依次循环两个数组(原有的数组,选择的数组),双重for循环判断model.code是否相等,不相等才存放到数组中,在这里,可能是自己循环有问题,一直出现的是数组中添加了很多的重复数据,所有,去重失败.

    2.接着第一种方法,然后双重for循环,将不相等model存放到数组,再利用NSMutableSet对数组去重,成功实现.

      NSSet *set = [NSSet setWithArray:dataArray];

      NSLog(@"%@",[set allObjects]);  

    3.最后用了一个最方便,易懂的...嘿嘿.....当然就是字典啦!!!!

    #pragma mark - 接收添加资产记录通知
    
    - (void)receiveModel: (NSNotification *)notification{
        
        NSLog(@"接收通知");
        NSArray *selectArray = notification.userInfo[@"selectassertArray"];
        if (isNilOrNull((self.detailModel.givenassetslist))) {
            NSArray *givassetArray = [NSArray array];
            self.detailModel.givenassetslist = [givassetArray mutableCopy];
        }
        for (GivenassetslistModel *model in selectArray) {
            
            [self.detailModel.givenassetslist addObject:model];
        }
        // 字典去重 <注意: 未刷新的数据依旧添加>
        NSMutableDictionary *dic = [NSMutableDictionary dictionary];
        
        if (self.detailModel.givenassetslist.count > 0) {
            
            for (GivenassetslistModel *model in self.detailModel.givenassetslist) {
                
                [dic setObject:model forKey:model.code];
            }
        }
        self.detailModel.givenassetslist = [[dic allValues] mutableCopy];
        [self.tableView reloadData];
    }

    在这里,真的得好好批评自己:

    1. 处理问题,实现功能太不考虑全面了,导致这种情况可以实现功能,出现另外一种情况就不可以了;

    例如: 服务器返回数组数据是nil......传递给" 选择 "控制器,   傻傻傻!!!   往nil数组中添加再多的model数据都没用啊....

    2. 传递已经选择的数据过来,"选择页面"是可以上拉加载的...你都还没上拉加载,数组中都没值,肯定添加不进去啊,导致数据错乱了!!!

    所以添加选择的数据应该在传过来的已经选择的数组中添加.......对应重复的数据,只能再去重咯!!!

    现在终于知道" 经验 "的这个问题了,因为踩得坑越多,经验越足,考虑问题的能力也会越来越全面!!!

    最近状态有点不对,有点迷茫.....调整调整哟...加油加油!!!

    fighting!!!   fighting!!!   fighting!!! 

  • 相关阅读:
    1210 BBS admin后台管理及侧边栏筛选个人站点
    1209 BBS 登录
    更换 npm 源国内镜像 cnpm
    Linux软件管理
    apt-get / yum 软件安装源(国内)
    修改pip源为国内镜像源(加速下载)
    修改浏览器搜索引擎:网址应该如何填写
    如何根据实际问题选择一个合适的数学模型
    安装向量和矩阵运算库函数
    配置编译器(GCC和GFortran)
  • 原文地址:https://www.cnblogs.com/pengsi/p/5772598.html
Copyright © 2011-2022 走看看