美文网首页
iOS-常见类型对象

iOS-常见类型对象

作者: 逆流瞅瞅 | 来源:发表于2019-12-15 10:12 被阅读0次
一、iOS 数组去重的方法
1. 利用NSDictionary的AllKeys唯一性
使用方法:将数组元素存入字典,利用字典key的唯一性获取去重之后的AllKeys,即为去重后的数据。
特点:去重后的数组是无序的
    NSArray *array = @[@"a", @"a", @"a", @"b", @"c"];
    NSMutableDictionary *dic = [NSMutableDictionary dictionary];
    for (NSString *str in array) {
        [dic setObject:str forKey:str];
    }
    NSLog(@"%@",dic.allKeys);
2. 创建新数组
使用方法:通过数组的containsObject函数判断数据在新数组中是否存在,不存在则加入新数组,存在则放弃。
特点:去重后的数组顺序不变
    NSArray *array = @[@"a", @"a", @"a", @"b", @"c"];
    NSMutableArray *newArray = [NSMutableArray array];
    for (NSString *str in array) {
        if (![newArray containsObject:str]) {
            [newArray addObject:str];
        }
    }
    NSLog(@"%@", newArray);
3. 利用NSSet/NSOrderedSet存储数据的互异性
使用方法:将数据存入NSSet/NSOrderedSet中,再将NSSet/NSOrderedSet转为数组
特点:NSSet得到的数据是无序的、NSOrderedSet得到的数据是有序的
    NSArray *array = @[@"a", @"a", @"a", @"b", @"c"];
    NSSet *set = [NSSet setWithArray:array];
    NSArray *newArray = [set allObjects];
    NSLog(@"%@", newArray);
    
    ///获得的是去重之后的有序数组
    NSOrderedSet *orderSet = [NSOrderedSet orderedSetWithArray:array];
    NSArray *newArray = [orderSet array];
    NSLog(@"%@", newArray);
4. 利用valueForKeyPath去重
使用方法:通过valueForKeyPath中的对象操作符@distinctUnionOfObjects实现数组去重
特点:去重后的数组是无序的
    NSArray *array = @[@"a", @"a", @"a", @"b", @"c"];
    NSArray *newArray = [array valueForKeyPath:@"@distinctUnionOfObjects.self"];
    NSLog(@"%@", newArray);

注意⚠️:在最新的iOS13上使用kvc会崩溃,比如textField的placeholder的字体大小

相关文章

  • iOS-常见类型对象

    一、iOS 数组去重的方法

  • iOS NSLog各种打印

    iOS-打印各种类型数据

  • this class is not key value codi

    iOS-常见错误:this class is not key value coding-compliant for...

  • 设计类型

    设计类型 一、类型基础 常见问题 面向对象语言的特点? 什么是面向对象语言面向对象语言(Object-Orient...

  • swift 快速记忆

    (一)类型 常见类型 Array dictionary 枚举enum 结构struct 协议 对象 (二)语法 流...

  • TypeScript在Vue中的使用

    基础 1,类型 除了上面的常见的基本类型意外,还可以通过接口(interface)定义对象类型 2,枚举 使用枚举...

  • swift中常用数据类型Int|String|Array|Dic

    一.swift数据类型的介绍 swift中的数据类型也有:整型/浮点型/对象类型/结构体类型等,常见的数据类型有:...

  • 基本数据类型对象包装类

    基本数据类型对象包装类。 基本数据类型对象包装类的最常见作用,就是用于基本数据类型和字符串类型之间做转换 基本数据...

  • ios- 常见数据类型转换

    1、NSDate转NSString 2、NSString转NSDate 3、字典转json格式字符串: 4、jso...

  • iOS-常见锁的类型及用法

    说起“锁”,一般都要涉及多线程,因为一块资源可能会被多个线程共享,也就是多个线程可能会访问同一块资源。比如:多个线...

网友评论

      本文标题:iOS-常见类型对象

      本文链接:https://www.haomeiwen.com/subject/besknctx.html