/*--------------------NSNumber--------------------*/
    //包装基本数据类型
    
    //1.创建number对象
    //12,1.9,'A',YES
    //整型     //(1)包装
    NSNumber *intNum = [NSNumber numberWithInteger:];
    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 = @;
    NSNumber *floatNum2 = @1.9;
    NSNumber *charNum2 = @'A';
    NSNumber *boolNum2 = @YES;
    
    NSInteger count = ;
    NSNumber *num = @(count);
    
    /*--------------------NSValue--------------------*/
    //将结构体变成对象
    NSRange range = {,};
    
    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 = @[@,@,@,null,@];
    NSLog(@"array2:%@",array2);
    

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

  1. 85、int 、NSInteger、NSUInteger、NSNumber的区别和联系

    NSNumber是NSValue的一个子类,它是一个对象来存储数字值包括bool型,它提供了一系列的方法来存储char a signed or unsigned char, short int, in ...

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

    一. Objective-C 对象简单处理 1. 包装类 (1) 包装类简介 NSValue 和 NSNumber : -- 通用包装类 NSValue : NSValue 包装单个 short, i ...

  3. Foundation框架下的常用类:NSNumber、NSDate、NSCalendar、NSDateFormatter、NSNull、NSKeyedArchiver

    ========================== Foundation框架下的常用类 ========================== 一.[NSNumber] [注]像int.float.c ...

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

    Objective-c 之Foundation之NSNumber ,NSValue, NSDate 1.NSNumber具体用法如下: 在Objective-c中有int的数据类型,那为什么还要使用数 ...

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

    NSArray.NSDictionary是不可以存储C语言中的基本数据类型的.NSNumber可以将基本数据类型包装成对象,这样可以间接将基本数据类型存进NSArray.NSDictionary等集合 ...

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

    前一篇说到了Foundation框架中的NSDirctionary类,这一一篇来看一下Foundation的其他常用的类:NSNumber,NSDate,NSException. 注:其实按照Java ...

  7. iOS Foundation框架 -3.利用NSNumber和NSValue将非OC对象类型数据存放到集合

    1.Foundation框架中提供了很多的集合类如:NSArray,NSMutableArray,NSSet,NSMutableSet,NSDictionary,NSMutableDictionary ...

  8. Foundation框架中的NSNumber对象详解

    到目前为止,我们所讨论过的所有数字数据类型,如int型.float型和long型都是Objective-C语言中的基本数据类型,也就是说,它们都不是对象.例如,不能向它们发送消息.然而,有时需要作为对 ...

  9. Foundation框架 - NSNumber类

    NSNumber类 NSFormatter #import <Foundation/Foundation.h> int main(int argc, const char * argv[] ...

随机推荐

  1. Yii2安装搭建和将入口文件移到根目录

    用Composer下载Yii2速度太慢了,所以我还是喜欢下载打包好的框架文件. 在https://github.com/yiisoft/yii2/releases 下载最新的的Yii2,advance ...

  2. CentOS中的常用命令

    1. 网络 1.1 查看所有端口 netstat -ntlp 1.2 查看被打开的端口 netstat -anp 1.3 查看端口占用情况 lsof -i: 或 lsof -i tcp: 2. 硬盘 ...

  3. Maven间接依赖冲突解决办法

    如果项目中maven依赖太多,由于还有jar之间的间接依赖,所以可能会存在依赖冲突.依赖冲突大部分都是由于版本冲突引起的,查看maven的依赖关系,可以找到引起冲突的间接依赖 如上图,通过Depend ...

  4. [综] Latent Dirichlet Allocation(LDA)主题模型算法

    多项分布 http://szjc.math168.com/book/ebookdetail.aspx?cateid=1&&sectionid=983 二项分布和多项分布 http:// ...

  5. JAVA 取得当前目录的路径/Servlet/class/文件路径/web路径/url地址

    在写java程序时不可避免要获取文件的路径...总结一下,遗漏的随时补上 1.可以在servlet的init方法里 String path = getServletContext().getRealP ...

  6. maven详解之生命周期与插件

    Maven是一个优秀的项目管理工具,它能够帮你管理编译.报告.文档等. Maven的生命周期: maven的生命周期是抽象的,它本身并不做任何的工作.实际的工作都交由"插件"来完成 ...

  7. lsyncd 实时同步

    1. 几大实时同步工具比较 1.1 inotify + rsync 最近一直在寻求生产服务服务器上的同步替代方案,原先使用的是inotify + rsync,但随着文件数量的增大到100W+,目录下的 ...

  8. IE报错:模块"scrrun.dll"已加载,但对DllRegisterServer的调用失败,错误代码为0x80004005

    在我的win10系统上打开某内部网页登录的时候弹出'模块"scrrun.dll"已加载,但对DllRegisterServer的调用失败,错误代码为0x80004005'报错信息, ...

  9. 使用canvas编写环形图.

    原理使用canvas画图: 第一步:画一个大圆 第二部:画一个扇形 第三部:画一个小圆 相互叠加. 最终效果: 现在上代码: (function($){ $.fn.drawPic=function(o ...

  10. Arduino 翻译系列 - LED 灯闪烁

    原文地址 - https://www.arduino.cc/en/Tutorial/Blink 闪烁 这个例子展示了你能拿 Arduino / Genuino 板子来干的最简单的事:使开发板上的 LE ...