在Object-C中有一些基本的数据类型:Int,char,float和Double,但是它们都不是类,不具有方法、成员变量和属性以及面向对象的特征,为了实现一切都是对象的特点,在Foundation框架中使用NSNumber类来封装这些数字类型,这样数字具有面向对象的特征,


一、获得NSNumber类的实例


不仅是NSNumber类,Foundation框架中几乎所有的类,都有2种获得实例的方式:一种是通过构造器创建;另一种是通过工厂设计模式创建;


以number为开头的方法是静态工厂创建方法,它通过工厂设计模式创建NSNuber对象获得实例,而以init开头的方法构造器,则通过构造器创建NSNumber对象初始化获得实例。

varn1=100varn2=NSNumber(integer:n1)varn3=NSNumber(int:CInt(n1))varn4=NSNumber(int:Int32(n1))



二、NSNumber对象的比较


与比较相关的方法哟isEqualToNumber 和 compare


isEqualToNumber只是比较是否相等,而compare方法可以比较是否相等、大于和小于它的返回值是NSComparisonResult 枚举类型


示例:

varinitSwift=100varinitNumber=NSNumber(integer:initSwift)varfloatNumber=NSNumber(double:80.0)ifinitNumber.isEqualToNumber(floatNumber)==true{NSLog("相等")}else{NSLog("不相等")}switchinitNumber.compare(floatNumber){case.OrderedAscending:NSLog("第一个数小于第二个数")case.OrderedSame:NSLog("两个数相等")case.OrderedDescending:NSLog("第一个数大于第二个数")}