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

来源:互联网 发布:新手特效制作软件 编辑:程序博客网 时间:2024/06/05 00:55
在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];








0 0
原创粉丝点击