• 黑马程序员_ Objective-c 之Foundation之NSNumber ,NSValue, NSDate


    Objective-c 之Foundation之NSNumber ,NSValue, NSDate

    1、NSNumber具体用法如下:

    在Objective-c中有int的数据类型,那为什么还要使用数字对象NSNumber。这是因为很多类(如NSArray)都要求使用对象,而int不是对象。
    NSNumber就是数字对象,我们可以使用NSNumber对象来创建和初始化不同类型的数字对象。

    此外,还可以使用实例方法为先前分配的NSNumber对象设定指定的值,这些都是以initWith开头,比如initWithLong。

    如:

    创建和初始化类方法初始化实例方法取值实例方法
    numberWithChar: initWithChar: charValue
    numberWithShort: initWithShort: shortValue
    ... ... ...


    复制代码
     1 void test()
     2 {
     3     NSNumber *num = [NSNumber numberWithInt:10];
     4     
     5     NSDictionary *dict =  @{
     6     @"name" : @"jack",
     7     
     8     
     9     @"age" : num
    10     
    11     };
    12     
    13     NSNumber *num2 = dict[@"age"];
    14     
    15     
    16     int a = [num2 intValue];
    17     
    18     NSLog(@"%d" , a);
    19 }
    复制代码
    复制代码
     1 #import <Foundation/Foundation.h>
     2 
     3 int main()
     4 {
     5     // @20  将 20包装成一个NSNumber对像
     6     
     7     
     8     NSArray *array = @[
     9     
    10     @{@"name" : @"jack", @"age" : @20},
    11     
    12     @{@"name" : @"rose", @"age" : @25},
    13     
    14     @{@"name" : @"jim", @"age" : @27}
    15     ];
    16     
    17     
    18     // 将各种基本数据类型包装成NSNumber对象
    19     @10.5;
    20     @YES;
    21     @'A'; // NSNumber对象
    22     
    23     @"A"; // NSString对象
    24     
    25     
    26     
    27     // 将age变量包装成NSNumber对象
    28     int age = 100;
    29     @(age);
    30     //[NSNumber numberWithInt:age];
    31     
    32     
    33     NSNumber *n = [NSNumber numberWithDouble:10.5];
    34     
    35     
    36     int d = [n doubleValue];
    37     
    38     
    39     
    40     int a = 20;
    41     
    42     // @"20"
    43     NSString *str = [NSString stringWithFormat:@"%d", a];
    44     NSLog(@"%d", [str intValue]);
    45     
    46     return 0;
    47 }
    复制代码

    2、NSValue具体用法:

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

    复制代码
     1 #import <Foundation/Foundation.h>
     2 
     3 
     4 int main()
     5 {
     6     
     7     // 结构体--->OC对象
     8     
     9     CGPoint p = CGPointMake(10, 10);
    10     // 将结构体转为Value对象
    11     NSValue *value = [NSValue valueWithPoint:p];
    12     
    13     // 将value转为对应的结构体
    14     // [value pointValue];
    15     
    16     NSArray *array = @[value ];
    17     
    18     
    19      20     
    21     return 0;
    22 }
    复制代码

    3、NSDate具体用法如下代码:

    复制代码
     1 void use()
     2 {
     3     // 创建一个时间对象
     4     NSDate *date = [NSDate date];
     5     // 打印出的时候是0时区的时间(北京-东8区)
     6     NSLog(@"%@", date);
     7     
     8     NSDate *date2 = [NSDate dateWithTimeInterval:5 sinceDate:date];
     9     
    10     
    11     // 从1970开始走过的秒数
    12     NSTimeInterval seconds = [date2 timeIntervalSince1970];
    13     
    14     // [date2 timeIntervalSinceNow];
    15 }
    复制代码

    日期格式化:

    复制代码
     1 void date2string()
     2 {
     3     NSDate *date = [NSDate date];
     4     
     5     
     6     // 日期格式化类
     7     NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
     8     
     9     // y 年  M 月  d 日
    10     // m 分 s 秒  H (24)时  h(12)时
    11     formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss";     //HH /hh 24小时致/12小时制
    12     
    13     NSString *str = [formatter stringFromDate:date];
    14     
    15     NSLog(@"%@", str);
    16 }
    复制代码
    复制代码
     1 void string2date()
     2 {
     3      // 09/10/2011
     4     NSString *time = @"2011/09/10 18:56";
     5     
     6     NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
     7     formatter.dateFormat = @"yyyy/MM/dd HH:mm";
     8     
     9     NSDate *date = [formatter dateFromString:time];
    10     NSLog(@"%@", date);
    11     return 0;
    12 }
  • 相关阅读:
    mass Framework spec模块 v2
    素数判断算法(高效率)
    修改Win7远程桌面端口【适用XP/2003】
    一步一步写算法(之hash表)
    DropdownList绑定的两种方法
    JDK1.5官方下载_JDK5官方下载_JDK1.5API(chm)下载_JDK5APICHM中文参考下载_JDK1.5下载_JDK5下载
    HTTPS 方式访问网站
    薏米红豆粥功效及做法介绍
    教你用笔记本破解无线路由器密码
    HTTPS那些事(一)HTTPS原理
  • 原文地址:https://www.cnblogs.com/yaochao/p/4033715.html
Copyright © 2020-2023  润新知