【Foundation学习笔记】数字对象NSNumber和NSValue

在C语言中,可以使用数字声明变量变量然后使用变量的方式访问数字。Objective-C语言是面向对象的语言,使用数字类型声明的变量就不合适了。Objective-C提供了数字对象,可以通过数字对象使用数字。
一、基本数据类型转数字类型
NSNumber *n = [NSNumber numberWithDouble:10.5];

NSNumber *num = [NSNumber numberWithInt:100];
二、利用@把基本数据类型包装成数字对象
    @10.5;
    @YES;
    @'A';   //NSNumber对象
    @"A";   //NSString对象
三、数字类型转回基本数据类型
    int a = [@10 intValue];
    double d = [@10.5 doubleValue];
    BOOL b = [@YES boolValue];
四、基本数据类型和字符串的转换
    int a = 20;
    NSString *str = [NSString stringWithFormat:@"%d", a];
    NSLog(@"%d", [@"209" intValue]);
五、NSValue
@interface NSNumber : NSValue
1、NSNumber之所以能包装基本数据类型为对象,是因为继承了NSValue
2、NSValue可以把结构体包装成对象,对象也可以转回对应的结构体
    CGPoint p = CGPointMake(10, 10);
    // 将结构体转为Value对象
    NSValue *value = [NSValue valueWithPoint:p];
    // 将value转为对应的结构体
    [value pointerValue];
    
    CGSize size = CGSizeMake(100, 80);
    NSValue *value2 = [NSValue valueWithSize:size];
    // 将value转为对应的结构体
    [value2 sizeValue];








你可能感兴趣的:(【Foundation学习笔记】数字对象NSNumber和NSValue)