• 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];
    //返回一个遥远的过去的时间
  • 相关阅读:
    idea 配置 scala
    Error contacting service. It is probably not running.
    ipc.Client: Retrying connect to server: .../10.0.0.27:10020. Already tried 6 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)
    hadoop安装配置
    WordCount-JAVA版
    scp、rsync、xsync
    我所经历的开题
    无情的岁月之流水一般的一年级
    数据挖掘中易犯的几大错误【转载,侵删】
    如何摧毁程序员的效率?【转载,侵删】
  • 原文地址:https://www.cnblogs.com/hqzxbb/p/4421431.html
Copyright © 2020-2023  润新知