A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Jack-xie 中级黑马   /  2014-10-11 11:53  /  713 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

一、把基本数据类型包装成NSNumber对象
    各种基本数据类型的数据都可以包装成NSNumber对象
    [NSNumber numberWithInt:10];// int
    [NSNumber numberWithChar:'a'];// char
    [NSNumber numberWithBool:YES];// BOOL
    [NSNumber numberWithDouble:2.5];//double
    [NSNumber numberWithFloat:3.5f];// float
    [NSNumber numberWithLong:98.5];// long
   
    二、使用编译器特性快速包装基本数据类型
    编译器特性:可以使用@快递把基本数据类型转换成NSNumber类型
    比如:
   
    @20;    // 把int类型转换成NSNumber类型的对象
    @10.5f; // 把float类型转换成NSNumber类型的对象
    @8,75;  // 把double类型转换成NSNumber类型的对象
    @YES;   // 把BOOL类型转换成NSNumber类型的对象
    @'A';   // 把cahr类型转换成NSNumber类型的对象
    @"abc"; // 注意区分:这个是NSString类型的对象
   
    // 快速创建
    NSArray *array = @[
    @{@"name" : @"Jack", @"age" : @20},
    @{@"name" : @"Julia", @"age" : @18},
    @{@"name" : @"Rose", @"age" : @19},
    ];

   如果使用变量,要使用小括号把变量名括起来(否则会被误当成关键字)
   比如:   

    int age = 20;
   
    NSNumber *num3 = @(age);
   
    三、把NSNumber对象还原成基本数据类型
     可以把NSNumber对象转换成各种的基本数据类型
   
    [num3 boolValue];
    [num3 charValue];
    [num3 intValue];
    [num3 shortValue];
    [num3 longValue];
    [num3 unsignedIntValue];
    [num3 unsignedLongValue];
    [num3 floatValue];
    [num3 doubleValue];
   
    四、字符串转换成基本数据类型   
    字符串其实也有类似的方法:

    NSString *str  = [NSString stringWithFormat:@"%d",10];
    int a1 = [str intValue];
    NSString *str1 = @"3.5";
    double d = [str1 doubleValue];
   
    // 转换使用
    NSNumber *num1 = [NSNumber numberWithInt:10];//定义一个OC的基本数据类型
    NSDictionary *dict = @{@"name" : @"Jack", @"age" : num1};//使用num1 赋值
    NSNumber *num2 = dict[@"age"];// 使用关键字取出对应的值
    int a = [num2 intValue];//将OC的数据类型转换成C基本数据类型
    NSLog(@"%d",a);// 访问
   

评分

参与人数 1技术分 +1 收起 理由
星河鹭起 + 1

查看全部评分

1 个回复

倒序浏览
学习学习
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马