zoukankan      html  css  js  c++  java
  • OC——Foundation—常用的类(4)——NSNumber、NSValue、NSNull、NSDate

    NSNumber

    NSNumber可以将基本数据类型包装成对象,这样就可以间接将基本数据类型存进NSArray,NSDictionary等集合中
    常见的初始化方法:
    //将一个int类型的数包装成一个number对象
    NSNumber *number=[NSNumber numberWithInt:10];
    //创建一个数组
    NSMutableArray *array=[NSMutableArray array];
    //添加值到数组中
    [array addObject:number];
    //从数组中取出来的还是一个number对象,不支持自动解包
    NSNumber *number1=[array lastObject];
    //将number转换为int类型
    int num=[number1 intValue];
    NSValue
    NSNumber是NSValue的子类,但NSNumber只能包装数字类型,NSValue可以包装任意值。也就可以用NSValue包装结构体后加入NSArray、NSDictionary等集合中
    创建NSValue的常用方法:
    //初始化一个结构体
    CGPoint point=CGPointMake(10,10);
    //将结构体包装成一个对象
    NSValue *value=[NSValue valueWithPoint:point];
    NSMutableArray *array=[NSMutableArray array];
    //添加value
    [array addObject:value];
    //取出放进去的value
    NSValue *value1=[array lastObject];
    CGPoint *point1=[value1 pointValue];

    NSValue包装自定义结构体

    typedef struct{
      int year;
      int month;
      int day;
    }Date;
    void value(){
      Date date={2015,4,13};
      //这里要传递结构体的地址
      char *type=@encode(Date);
      NSValue *value=[NSValue value:&date withObjCType:type];
      //定义一个结构体变量
      Date date1;
      //取出包装过的结构体变量
      [value getValue:&date1];
    }
    NSNull
    集合中是不能存放nil值的,因为nil在结合中又特殊含义,但有时确实需要存储一个表示“什么都没有”的值,那么就可以使用NSNull,它也是NSObject的一个子类
    创建和获取NSNull的方法
    +(NSNull*)null
    [NSNull null]总是返回一样的值,所以可以用==将该值与其他值进行比较
     
     
    NSDate
    Date返回的是当前的时间
    NSDate *date=[NSDate date];
    date=[NSDate dateWithTimeIntervalSinceNow:10]
    //返回当前的时间加10秒
    date=[NSDate dateWithTimeIntervalSince1970:10]
    //机器时间从1970年开始,因此,返回从1970开始再加10秒的时间
    date=[NSDate distantFuture];
    //返回一个遥远的将来的时间
    date=[NSDate distantPast];
    //返回一个遥远的过去的时间
  • 相关阅读:
    C#
    if
    .net 5.0
    C# 未提供必须形参对应的实参
    EasyRTC报错 “[ERR] mod_local_stream.c:880 Unknown source default”排查
    EasyRTC通过公网进入会议室失败问题排查及解决
    【CF1558B】Up the Strip
    【AT Keyence2019E】Connecting Cities
    【洛谷P7470】岛屿探险
    【洛谷P6628】丁香之路
  • 原文地址:https://www.cnblogs.com/hqzxbb/p/4421431.html
Copyright © 2011-2022 走看看