zoukankan      html  css  js  c++  java
  • iOS开发-OC篇-NSSet,NSNumber

      

    最近回顾了OC的一些基本知识,发现确实遗忘了很多重要的东西,今天整理了一些小的知识点,和大家分享一下。

      

    iOS的集合对象不可以存储C语言基本类型,所有可以进行装箱拆箱,来进行OC对象操作。

    1、NSNumber包装类

    1>  普通初始化

    NSNumber * num1 = [[NSNumber alloc] initWithInt:20];

    NSNumber * num2 = [NSNumber numberWithChar:'a'];

    2>字面量初始化

    NSNumber * num3 = @300;

    NSNumber * num4 = @123.2;

    NSNumber * num5 = @'X';

    3>变量初始化

    int a = 29;

    NSNumber * num5 = @(a);

    4>NSNumber转基本数据类型

    charValue,intValue,longValue,doubleValue

    2、NSValue包装类

    举例:

    typedef struct {

        int age;

        char * name;

        char sex;

    } SPerson;

    SPerson person;

    person.name = "dahuan";

    person.age = 10;

    person.sex = 'm';

    //将一个结构体转换为NSValue对象,

    //@encode(aType) 可以返回该类型的 C 字符串(char *)的表示

    NSValue * value = [NSValue valueWithBytes:&person objCType:@encode(SPerson)];

    SPerson person2;

    //将一个NSValue对象转换为结构体

    [value getValue:&person2];

    NSLog(@"%s",person2.name);

    NSLog(@"%d",person2.age);

    NSLog(@"%c",person2.sex);

    NSRange range = {12,2};

    //常用结构体装箱

    NSValue * rvalue =[NSValue valueWithRange:range];

    //rangeValue将NSRange拆箱

    NSLog(@"%@",NSStringFromRange([rvalue rangeValue]));

      

    3、区分各种空值

    nil是一个对象指针为空

    Nil是一个类指针为空

    NULL是基本数据类型为空。

    NSNull空对象 是可以放在数组里的

    4、NSSet用法

    1>  NSSet初始化

    NSSet * set = [[NSSet alloc] initWithObjects:@"a",@"b",@"c", nil];

    NSSet * set1 = [NSSet setWithObjects:@"z",@"x",@"c", nil];

    NSSet * set2 = [NSSet setWithArray:array];

    2> 获取NSSet中任意对象

    [set2 anyObject]

    3> 是否包含某对象

    [set2 containsObject:@"w"]

    4> 是否有相同元素

    [set intersectsSet:set2]

    5、NSMutableSet用法

    1> NSMutableSet初始化

    NSMutableSet * set = [[NSMutableSet alloc] initWithCapacity:0];

    2>  追加删除和NSMutableArray一样

    3> 取两个NSSet的并集

    [set unionSet:set2]

    4> NSSet减去一样的元素

    [set minusSet:set2]

    5> 取两个NSSet的交集

    [set intersectSet:set2]

    6、NSDictionary用法

    1> NSDictionary初始化

    NSDictionary * dict = [[NSDictionary alloc] initWithObjectsAndKeys:@"value1",@"key1",@"value2",@"key2", nil];

    NSDictionary * dict2 = [NSDictionary dictionaryWithObjects:@[@"value1",@"value2"] forKeys:@[@"key1",@"key2"]];

    NSDictionary * dict3 = @{@"key1":@"value1",@"key2":@"value2”};//字面量形式

    2> 通过key值获取value值

    [dict3 objectForKey:@(2)] //key值可以是任意对象

    [dict3 valueForKey:@"key2"] //key值只能是NSString

    dict3[@"key2"]  //字面量形式,建议使用

    3> 获取字典中所有的key值

    [dict3 allKeys]

    4> 获取字典中所有的value值

    [dict3 allValues]

  • 相关阅读:
    网页基本信息
    3.ThinkPHP入门---视图
    2.TinkPHP入门----控制器
    1.Thinkphp入门--框架介绍
    C#生成二维码
    .net mvc中的表单异步提交
    .net MVC中异常日志
    .net导入excel数据到数据库中
    执行带返回参数的存储过程
    Jquery客户端校验——jquery.validate.js
  • 原文地址:https://www.cnblogs.com/Horkly/p/5331170.html
Copyright © 2011-2022 走看看