1、NSNumber可以表示多种基本数据类型,如int、bool、char、float、double,以及他们加了修饰符long、unsigned的类型。
 
 
2、创建方法可以使用numberWithInt: numberWithInterger。也可以使用initWithInt方法
 
 
3、获取的方法可以使用intValue、doubleValue或者返回字符串类型stirngValue
 
 
4、使用NSNumber的compare方法比较两个值,返回的对象可以转化为-1、0、1,分别代表小于、等于、大于。与bool值比较时,YES代表1,当另一个数大于1时返回1,小于1时返回-1
     真正返回的是一个枚举类型NSComparisonResult,
   另一个方法isEqualToNumber,返回bool值,这个方法更好用
enum  {
NSOrderedAscending=-1,
NSOrderedSame,
    NSOrderedDescending
};typedefNSIntegerNSComparisonResult;
 
        // 比较两个NSNumber
        NSNumber *num1 = [[NSNumber alloc] initWithBool:YES];
        NSNumber *num3 = [[NSNumber alloc] initWithChar:'d'];
        NSLog(@"%ld",(long)[num1 compare:num3]);// -1
 
 
 
5、如果需要判断NSNumbr的具体类型,如判断是不是bool类型的值
NSNumber * n = [NSNumber numberWithBool:YES];
if (strcmp([n objCType], @encode(BOOL)) == 0) {
    NSLog(@"this is a bool");
} else if (strcmp([n objCType], @encode(int)) == 0) {
    NSLog(@"this is an int");
}

NSNumber的使用的更多相关文章

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

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

  2. 数字对象NSNumber

    //将int类型转化成对象 ; NSNumber *numberString = [NSNumber numberWithInt:number]; //对象是可以放入数组的 NSArray *arra ...

  3. Objective-C( Foundation框架 一 NSNumber(NSValue))

    NSNumber: 是OC中处理数字的一个类 NSValue是NSNumber的子类 如何处理: 把int,float,double  包装成一个对象 使用NSNumber的好处: 可以把基本数据类型 ...

  4. NSString,NSArray,NSNumber等类的继承问题

    问题引入,我想给NSString类扩展一些新的方法.在Objective-C中可以有两种方法,一是继承,二是类别.本文先不讨论类别,我们用继承的方法试一下: @interface StringEx : ...

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

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

  6. Objective - C 值对象 NSNumber和NSValue

    在进行数据处理的时候,因为对象类型的不同, 并不能进行相应的数据处理,所以必须要进行数据类型的转换,这也就是NSNumber,NSValue这两类值对象出现的原因. 简而言之,NSNumber就是实现 ...

  7. Foundation ----->NSNumber

    /*--------------------NSNumber--------------------*/     //包装基本数据类型          //1.创建number对象     //12 ...

  8. NSString NSNumber 相互转化

    NSNumberFormatter *numFormatter = [[NSNumberFormatter alloc] init]; NSNumber *firstNum = [NSNumber n ...

  9. NSValue&NSNumber

    void testForNSValue(void) { int i=10; //    NSLog(@"encode(int)=%s",@encode(int)); //    N ...

  10. OC NSNumber NSValue

    OC NSNumber NSValue iOS的集合对象不可以存储C语言基本类型,所有可以进行装箱和拆箱,来进行OC对象操作. NSNumber包装类 普通初始化 NSNumber * num1 = ...

随机推荐

  1. 数据库ACID

    数据库的事务隔离级别 10.数据库的事务隔离级别一般分为4个级别,其中可能发生“不可重复读”的事物级别有()A.SERIALIZABLE B.READ COMMITTEDC.READ UNCOMMIT ...

  2. 搭建CAS单点登录服务器

    最近公司的一个项目需要用到单点登录的功能,之前对单点登录了解得不多.于是网上找了下单点登录的解决方案,发现CAS是个不错的解决方案.于是搭个环境测试了一下.这里记录下测试的详细步骤. 官网:http: ...

  3. 【JAVA、C++】LeetCode 003 Longest Substring Without Repeating Characters

    Given a string, find the length of the longest substring without repeating characters. For example, ...

  4. NEFU 2016省赛演练一 I题 (模拟题)

    这题没名字 Problem:I Time Limit:2000ms Memory Limit:65535K Description Now give you an interger m and a s ...

  5. C++文件读写详解(ofstream,ifstream,fstream)

    C++文件读写详解(ofstream,ifstream,fstream) 这里主要是讨论fstream的内容: #include <fstream> ofstream //文件写操作 内存 ...

  6. Android 图标添加消息提醒

    实现方法: 1. 在对应的布局放置TextView或者ImageView. 2. 用Canvas在原来Icon的bitmap基础上进行绘制 3. 利用开源项目ViewBadger进行添加,很方便,而且 ...

  7. Android之canvas详解

    首先说一下canvas类: Class Overview The Canvas class holds the "draw" calls. To draw something, y ...

  8. 4.抽象工厂模式(Abstract Factory)

    using System; using System.Reflection; namespace ConsoleApplication1 { class Program { static void M ...

  9. C# WPF 之 遍历子控件

    /// <summary> /// 检查非空字段 /// </summary> /// <param name="IsOk"></para ...

  10. Android开发代码规范(转)

    Android开发代码规范 1.命名基本原则    在面向对象编程中,对于类,对象,方法,变量等方面的命名是非常有技巧的.比如,大小写的区分,使用不同字母开头等等.但究其本,追其源,在为一个资源其名称 ...