NSNumber 与NSValue

作者: CharlesAn | 来源:发表于2015-04-16 17:24 被阅读1864次

    NSNumber与NSValue关系与作用

    1.由于集合里只能存放对象,不可以存放基本数据类型,所以我们有时候需要讲一些对象比如基本数据类型,结构体等存到NSDictionary NSArray中,我们就需要将这些数据类型或结构体包装成OC对象,以便集合能访问到。常用的用来包装这些类型的有NSNumber NSValue
    
    2.NSNumber只能包装基本数据类型,比如int, float,char,BOOL等
    
    3.NSValue可以包装任意一个对象,包括系统自定义的数据结构,结构体等等
    
    4.NSNumber是NSValue的一个子类
    
    • NSNumber
    //包装
    int age = 20;
    NSNumber *num = [NSNumber numberWithInt:age];//将基本数据类型int对象age 包装成NSNumber对象
    @(age);//直接包装
    
    //拆封
    [num intValue];
    
    • NSValue
    将结构体包装成OC对象
    
    CGPoint p = CGPointMake(1,2);
    NSValue *val = [NSValue valueWithPoint:p];//将结构体p包装成NSValue对象
    
    //拆
    [value pointValue]
    

    相关文章

      网友评论

        本文标题:NSNumber 与NSValue

        本文链接:https://www.haomeiwen.com/subject/hkgsfttx.html