黑马程序员---Foundation常用类(NSNumber、NSValue、NSDate)

———Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ———

因为OC数组只能存放OC对象、不能存放非OC对象类型,比如intstructenum等,但有时候我们需要存放基本数据类型,比如在一个字典类中存放一个人的年龄信息:NSArray *array = @[@{"name" : @"jack",@"age": @"20"}];,但是这样写肯定是不对的,因为20是int型,是基本数据类型,是不能存放在OC对象中的,所以这个时候我们就用到了NSNumber这个类

把基本数据类型包装成NSNumber型的对象

NSNumber *num = [NSNumber numberWithInt:10]; //把一个int类型的数据转成NSNumber对象

所以此时的num就是一个对象,也就可以放在下面的字典中了

NSDictionary *dict =  @{
    @"name" : @"jack",
    @"age" : num // 此时的number就是代表10
    };
如果要取出的话,那他还是NSNumber类,并不是基本数据类型int

NSNumber *num2 = dict[@"age"]; // 相当于[dict  objectForKey:(id)];返回的是id类型,即OC对象
那如果要转成基本数据类型的话就是:

int a =[num2 intValue]; //此时的a就是10

把小数转为NSNumber对象

    NSNumber *n = [NSNumber numberWithDouble:10.5];    

    int d = [n doubleValue]; // 把NSNumber对象转成小数 

把字符串转成基本数据类型:

NSLog(@"%d",[@"209" intValue]); //打印结果:209

NSArray *array = @[
    //表示字典中有四个人的信息
    @{@"name" : @"jack", @"age" : @20}, // 每次都要写[NSNumber numberWithInt:age] 很麻烦,编译器特性,可以直接写@20
    @{@"name" : @"rose", @"age" : @25},
    @{@"name" : @"jim", @"age" : @27}
    ];

将各种基本数据类型包装成NSNumber对象

   @10.5;小数

   @YES; 布尔类型

    @'A';// NSNumber对象

   @"A"; // NSString对象

age变量包装成NSNumber对象

    int age = 100;

    @(age); // 注意要把变量用小括号括起来

    [NSNumber numberWithInt:age];

NSValue

NSNumber之所以能包装基本数据类型为对象,是因为继承了NSValue

结构体--->OC对象

CGPoint p = CGPointMake(10,10);

将结构体转为Value对象

NSValue *value = [NSValue valueWithPoint:p];

 value转为对应的结构体

 [value pointValue];

NSArray *array = @[value];

   NSDate 

创建一个时间对象

NSDate *date = [NSDate date];
    // 打印出的时候是0时区的时间(北京-东8区)
    NSLog(@"%@", date);
    NSDate *date2 = [NSDate dateWithTimeInterval:5 sinceDate:date] 
    NSTimeInterval seconds = [date2 timeIntervalSince1970];// 从1970开始走过的秒数
     // [date2 timeIntervalSinceNow];

NSDate *date = [NSDate date];

    日期格式化类

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

    // y   M  d

    // m s  H 24)时  h12)时 

 formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss"; // 设置格式
    NSString *str = [formatter stringFromDate:date];
    NSLog(@"%@", str);

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值