Foundation ----->NSNumber

/*--------------------NSNumber--------------------*/
    //包装基本数据类型
    
    //1.创建number对象
    //12,1.9,‘A‘,YES
    //整型

    //(1)包装
    NSNumber *intNum = [NSNumber numberWithInteger:12];
    NSNumber *floatNum = [NSNumber numberWithDouble:1.9];
    NSNumber *charNum = [NSNumber numberWithChar:‘A‘];
    NSNumber *boolNum = [NSNumber numberWithBool:YES];
    
    NSArray *array = @[intNum,floatNum,charNum,boolNum];
    NSLog(@"%@",array);
    
    //(2)解包
    NSInteger intValue = [intNum integerValue];
    CGFloat floatValue = [floatNum doubleValue];
    char c = [charNum charValue];
    bool b = [boolNum boolValue];
    
    //优化语法
    NSNumber *intNum2 = @12;
    NSNumber *floatNum2 = @1.9;
    NSNumber *charNum2 = @‘A‘;
    NSNumber *boolNum2 = @YES;
    
    NSInteger count = 12;
    NSNumber *num = @(count);
    
    /*--------------------NSValue--------------------*/
    //将结构体变成对象
    NSRange range = {1,2};
    
    NSValue *rgValue = [NSValue valueWithRange:range];
    NSLog(@"range:%@",rgValue);
    
//    [NSValue valueWithSize:/]
    
    //自定义的结构体
    struct CXPoint {
        CGFloat x;
        CGFloat y;
    };
    
    //----对自定义的结构体封装----
    struct CXPoint p = {1.2,9.8};
    NSValue *pValue = [NSValue value:&p withObjCType:@encode(struct CXPoint)];
    NSLog(@"%@",pValue);
    
    //----对自定义的结构体解封装----
    struct CXPoint p2;
    [pValue getValue:&p2];
    NSLog(@"%f   %f",p2.x,p2.y);
    
    
    /*---------------------NSNull---------------------*/
    
    //nil不能作为元素存放
//    NSArray *array2 = @[@1,@2,@3,nil,@5];
    
    NSNull *null = [NSNull null];
    NSArray *array2 = @[@1,@2,@3,null,@5];
    NSLog(@"array2:%@",array2);
    
时间: 2024-10-10 20:16:28

Foundation ----->NSNumber的相关文章

黑马程序员——Foundation(NSNumber,NSDate,NSValue)

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 1. NSNumber a. NSNumber设计目的 OC已经有int,float,double...类型为什么还需要设计NSNumber呢?原因是很多集合类型如NSArray,NSDictionary等只能容纳OC对象对于一些类似于int的基本数据类型我们需要把它转化为OC对象才能被集合容纳,这就是NSNumber设计的目的. b. NSNumber的使用 1 2 3 4 5 6 7 8

【IOS 开发】Object - C 面向对象高级特性 - 包装类 | 类处理 | 类别 | 扩展 | 协议 | 委托 | 异常处理 | 反射

一. Object-C 对象简单处理 1. 包装类 (1) 包装类简介 NSValue 和 NSNumber : -- 通用包装类 NSValue : NSValue 包装单个 short, int, long, float, char, id, 指针 等数据; -- NSNumber 包装类 : 用于包装 C 语言数据类型; NSNumber 方法 : -- "+ numberWithXxx :" : 将特定类型的值包装成 NSNumber; -- "- initWithX

OC学习篇之---Foundation框架中的其他类(NSNumber,NSDate,NSExcetion)

1.NSNumber 这个类主要是用来封装基本类型的,说到这里,就不得不说一下了: OC中的集合是不允许存入基本类型的,所以NSNumber类就诞生了,需要将基本类型封装一下,然后存进去,这个类似于Java中的自动装箱和拆箱,Java中的集合其实也是不允许存入基本类型的,但是我们任然看可以那么操作,就是因为有自动装箱功能,如果你将Eclipse的JDK改成5.0之前的,你看看还能操作吗.. 注:那为什么基本类型不能存入到集合中呢? 原因是在操作集合的时候会操作集合元素中的方法,但是基本类型是没有

黑马程序员--Foundation框架之--类其他常用的类:NSNumber,NSDate

------IOS培训期待与您交流! ------- Foundation的其他常用的类:NSNumber,NSDate 一.NSNumber 这个类主要是用来封装基本类型的,OC 中的集合是不允许存入基本类型的,所以NSNumber类就诞生了,需要将基本类型封装一下,然后存进去. 从这一点上我们就可以看出NSNumber是很重要的,后面一定会经常用到. 1.封包和解包 // 创建NSNumber // 封包 NSNumber *intNumber = [NSNumber numberWithI

黑马程序员_ Objective-c 之Foundation之NSNumber ,NSValue, NSDate

Objective-c 之Foundation之NSNumber ,NSValue, NSDate 1.NSNumber具体用法如下: 在Objective-c中有int的数据类型,那为什么还要使用数字对象NSNumber.这是因为很多类(如NSArray)都要求使用对象,而int不是对象.NSNumber就是数字对象,我们可以使用NSNumber对象来创建和初始化不同类型的数字对象. 此外,还可以使用实例方法为先前分配的NSNumber对象设定指定的值,这些都是以initWith开头,比如in

黑马程序员-OC学习笔记之Foundation框架NSNumber、NSValue和NSDate

---------------------- IOS开发.Android培训.期待与您交流! ---------------------- 一.NSNumber 前几篇笔记中,小桥复习了Foundatio框架中的几个类,这三个是OC学习的尾声了. 小桥已经复习过OC数组类NSArray,也说过它只能存放OC的对象,对于基本的数据类型确无能为力,但是实际编程中经常要把基本的数据如int.float,结构体存放的OC数组中,怎么办?这里的NSNumber就有用了,它能够把基本数据类型包装成OC对象.

黑马程序员——Foundation框架常用类(NSNumber/NSValue)

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------ 简介 引入:NSArray.NSSet.NSDictionary这些OC集合都只能存放OC对象,不能存放基本数据类型(int.char.double...).如果我们想将基本数据类型存到这些OC集合中,那么我们将基本数据类型(int.char.double...)包装成OC对象,那么就可以存到OC集合中.NSNumber可以将基本数据类型包装为OC对象. NSValue:用来存储一个C或者OC的

Objective-C:Foundation框架-常用类-NSNumber

NSArray.NSDictionary是不可以存储C语言中的基本数据类型的.NSNumber可以将基本数据类型包装成对象,这样可以间接将基本数据类型存进NSArray.NSDictionary等集合类中.用法如下: #import <Foundation/Foundation.h> void number() { // 将int类型的10 包装成 一个NSNumber对象 NSNumber *number = [NSNumber numberWithInt:10]; NSLog(@"

(转载)OC学习篇之---Foundation框架中的其他类(NSNumber,NSDate,NSExcetion)

前一篇说到了Foundation框架中的NSDirctionary类,这一一篇来看一下Foundation的其他常用的类:NSNumber,NSDate,NSException. 注:其实按照Java中集合的思想,应该还有一个Set,是的,OC中有NSSet和NSMutableSet这两个类的,但是,这里我为什么不单独介绍了呢?因为他的操作和NSArray是非常相似的,只是他和NSArray有一个区别就是他不能放重复数据,而且他也是无序的.其他没什么了,所以就不单独介绍了,而且NSSet在后面的