在这个项目中出现"添加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 > ) { 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!!!

数组中存放model去重的更多相关文章

  1. 在主方法中定义一个大小为50的一维整型数组,数组i名为x,数组中存放着{1,3,5,…,99}输出这个数组中的所有元素,每输出十个换一行

    package hanqi; import java.util.Scanner; public class Test7 { public static void main(String[] args) ...

  2. C语言:将3*5矩阵中第k列的元素左移到第0列,第k列以后的每列元素依次左移,原来左边的各列依次绕到右边。-在m行m列的二维数组中存放如下规律的数据,

    //将3*5矩阵中第k列的元素左移到第0列,第k列以后的每列元素依次左移,原来左边的各列依次绕到右边. #include <stdio.h> #define M 3 #define N 5 ...

  3. 从给数组中的对象去重看Javascript中的reduce()

    假设有这样一个数组: let person = [ {id: 0, name: "小明"}, {id: 1, name: "小张"}, {id: 2, name ...

  4. 小姐姐手把手教你JS数组中的对象去重

    有时候数据库中的数据重复的,我们另一个需求需要数据的唯一性 那么这时候就用到这个方法了  我还是以截图的方式发粗来  不然太丑了 见谅 console.log(map)打印出来的结果已经帮我们把需要的 ...

  5. 按要求编写Java应用程序。 编写一个名为Test的主类,类中只有一个主方法; 在主方法中定义一个大小为50的一维整型数组,数组名为x,数组中存放着{1, 3,5,…,99}输出这个数组中的所有元素,每输出十个换一行;在主方法中定义一 个大小为10*10的二维字符型数组,数组名为y,正反对角线上存的是‘*’,其余 位置存的是‘#’;输出这个数组中的所有元素。

    int[]x=new int [50]; char[][]y=new char[10][10]; int j=1,w=0; for(int i=0;i<50;i++) { x[i]=j; j+= ...

  6. 编写一个名为Test的主类,类中只有一个主方法; 在主方法中定义一个大小为50的一维整型数组,数组名为x,数组中存放着{1, 3,5,…,99}输出这个数组中的所有元素,每输出十个换一行;在主方法中定义一 个大小为10*10的二维字符型数组,数组名为y,正反对角线上存的是‘*’,其余 位置存的是‘#’;输出这个数组中的所有元素。

    package liu0915; import java.util.Random; public class Test0915sz { public static void main(String[] ...

  7. 【C语言】一堆数组中存放了10个小于100的整数,请编程对所有数据按照从小到大的顺序进行排序,若个位数相等,则按照十位从小到大的顺序排序,输出排序后的结果

    分析:取余,判断个位是否相等,利用冒泡法排序 #include <stdio.h> int main() { ] = { ,,,,,,,,, };/*数组*/ int i, j, k; ; ...

  8. 16.按要求编写Java应用程序。 编写一个名为Test的主类,类中只有一个主方法; 在主方法中定义一个大小为50的一维整型数组,数组名为x,数组中存放着{1, 3,5,…,99}输出这个数组中的所有元素,每输出十个换一行;在主方法中定义一 个大小为10*10的二维字符型数组,数组名为y,正反对角线上存的是‘*’,其余 位置存的是‘#’;输出这个数组中的所有元素。

    //分类 package com.bao; public class Shuchu { int[]yi=new int[50]; String[][]er=new String[10][10]; vo ...

  9. 数组中存放对象之java中定义类数组存放类

    public class ClassArrayDemo { int age; String name; ClassArrayDemo(int age, String name) { this.age ...

随机推荐

  1. Hbuilder + MUI 的简单案例

    话不多说 直接上代码 项目结构: index.html 的代码 <!DOCTYPE html><html>    <head>        <meta ch ...

  2. vue 多层组件相互嵌套的时候 数据源更新 dom没更新 彻底清除组件缓存

    当项目中存在多层组件相互嵌套 组件存在严重缓存时  this.$nextTick(() => { ..... }); 不管用 this.$forceUpdate(); 不管用 只能通过深拷贝浅拷 ...

  3. Python3-BaseType

    counter = 100 # 整型变量 miles = 1000.0 # 浮点型变量 name = "runoob" # 字符串 print(counter) print(mil ...

  4. Remove Mapping

    http://social.msdn.microsoft.com/forums/vstudio/en-US/ffa3aa15-1d61-4464-ac4a-7a812d073a67/remove-ma ...

  5. word文档的图片怎么保存到ueditor上

    word图片转存,是指UEditor为了解决用户从word中复制了一篇图文混排的文章粘贴到编辑器之后,word文章中的图片数据无法显示在编辑器中,也无法提交到服务器上的问题而开发的一个操作简便的图片转 ...

  6. java超大文件上传

    上周遇到这样一个问题,客户上传高清视频(1G以上)的时候上传失败. 一开始以为是session过期或者文件大小受系统限制,导致的错误. 查看了系统的配置文件没有看到文件大小限制, web.xml中se ...

  7. HDU 5527 Too Rich ( 15长春区域赛 A 、可贪心的凑硬币问题 )

    题目链接 题意 : 给出一些固定面值的硬币的数量.再给你一个总金额.问你最多能用多少硬币来刚好凑够这个金额.硬币数量和总金额都很大   分析 : 长春赛区的金牌题目 一开始认为除了做类似背包DP那样子 ...

  8. 二维DFT

    学习DIP第4天 傅里叶变换数学原理会在后续完整介绍,目前只实现代码,观察下结果,公式在上一篇博客中已经描述 内容迁移至 http://www.face2ai.com/DIP-2-2-二维DFT/ h ...

  9. topcoder13444

    CountTables TopCoder - 13444 sol:题意和题解都丢在上面了,自己XJByy了一下 先保证行不同,然后对列容斥,dp[i]表示i列的答案 行不同时i列的答案显然是C(c^i ...

  10. Java字节码例子解析

    举个简单的例子: public class Hello {     public static void main(String[] args) {         String string1 = ...