NSNumber,NSValue,NSDate的使用

void number() {

    // int类型的10 包装成 一个NSNumber对象

    NSNumber *number = [NSNumber numberWithInt:10];

    NSLog(@"number=%@", number);

    NSMutableArray *array = [NSMutableArray array];

    // 添加数值到数组中

    [array addObject:number];

    // 取出来还是一个NSNumber对象,不支持自动解包(也就是不会自动转化为int类型)

    NSNumber *number1 = [array lastObject];

    // NSNumber转化成int类型

    int num = [number1 intValue];

    NSLog(@"num=%i", num);

}


void value() {

    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];

    BOOL result = CGPointEqualToPoint(point1, point);

    NSLog(@"result=%i", result);

}


typedef struct {

    int year;

    int month;

    int day;

} Date;

void value2() {

    Date date = {2013, 4, 7};

    // void *代表任何指针

    // 这里要传结构体的地址&date

    // 根据结构体类型生成 对应的 类型描述字符串

    char *type = @encode(Date);

    NSValue *value = [NSValue value:&date withObjCType:type];

    

    // 定义一个结构体变量

    Date date1;

    // 取出包装好的结构体

    [value getValue:&date1];

    // [value objCType];  取出类型描述字符串

    NSLog(@"year=%i, month=%i, day=%i", date1.year, date1.month, date1.day);

}


void dateCreate() {

    // date方法返回的就是当前时间(now)

    NSDate *date = [NSDate date];

    // now:  11:12:40

    // date: 11:12:50

    date = [NSDate dateWithTimeIntervalSinceNow:10];

    // 1970-1-1 00:00:00开始

    date = [NSDate dateWithTimeIntervalSince1970:10];

    // 随机返回一个比较遥远的未来时间

    date = [NSDate distantFuture];

    // 随机返回一个比较遥远的过去时间

    date = [NSDate distantPast];

    NSLog(@"%@", date);

}


void dateUse() {

    NSDate *date = [NSDate date];

    // 返回1970-1-1开始走过的毫秒数

    NSTimeInterval interval = [date timeIntervalSince1970];

    // 跟其他时间进行对比

    // [date timeIntervalSinceDate:<#(NSDate *)#>];

    NSDate *date2 = [NSDate date];

    // 返回比较早的那个时间

    [date earlierDate:date2];

    // 返回比较晚的那个时间

    [date laterDate:date2];

}


void dateFormat() {

    NSDate *date = [NSDate date];

    // 2013-04-07 11:14:45

    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];

    // HH24进制,hh12进制

    formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";

    // formatter.locale = [[[NSLocale alloc] initWithLocaleIdentifier:@"zh_CN"] autorelease];

    NSString *string = [formatter stringFromDate:date];

    NSLog(@"%@", string);

    // 返回的格林治时间

    NSDate *date2 = [formatter dateFromString:@"2010-09-09 13:14:56"];

    NSLog(@"%@", date2);

    [formatter release];

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值