NSNumber的使用 - OC

什么是NSNumber
  • NSArray\NSDictionary中只能存放OC对象, 不能存放int\float\double等基本数据类
  • 如果真想把基本数据(比如int)放进数组或字典中, 需要先将基本数据类型包装成OC对象,把 int /float /double -----> 包装成一个对象


    NSNumber的使用 - OC_第1张图片
    屏幕快照 2015-09-05 12.15.07.png
NSNumber的使用:
    int a = 10;
    int x = 100;
    float f1 = 3.23f;
    double d1 = 2.34;
    
    //int   --->   obj
    // numberWithInt   把int   转换为 NSNumber
    NSNumber *intObj = [NSNumber numberWithInt:a];
    NSMutableArray *array = [NSMutableArray arrayWithObjects:intObj, nil];

    //  float ---> NSNumber
    NSNumber *floatObj = [NSNumber numberWithFloat:f1];
    [array addObject:floatObj];

    
    // double ---> NSNumber
    NSNumber *dObj = [NSNumber numberWithDouble:d1];
把对象添加到数组中
    //把对象添加到数组中
    [array addObject:dObj];
    
    //简写形式:@(变量名)  ---> 把 x 转换为NSNumber对象
    [array addObject:@(x)];
    //@数值,把数值包装成对象
    [array addObject:@18];
    
    NSLog(@"array = %@",array);
数组的第一个元素和第二个元素相加
    //array[0]+array[1]
    
    //1)取出数组的元素
    //2)把数组元素转换为基本数据类型的数据
    NSNumber *n1 = array[0];
    int a1 = [n1 intValue];  //获取对象的整形值
    
    NSNumber *n2 = array[1];
    float f2 = [n2 floatValue];
    //简化写法
    a1 = [array[0] intValue]+[array[1] floatValue];
    NSLog(@"%d",a1);

你可能感兴趣的:(NSNumber的使用 - OC)