今天普及下NSValue和NSNumber

NSNumber我们应该经常用,也很了解了。

那NSValue呢,是否有应用过呢?

下面开始吧。


NSValue

一个NSValue对象是用来存储一个C或者Objective-C数据的简单容器。它可以保存任意类型的数据,比如int,float,char,当然也可以是指pointers, structures, and object ids。NSValue类的目标就是允许以上数据类型的数据结构能够被添加到集合里,例如那些需要其元素是对象的数据结构,如NSArray或者NSSet的实例。需要注意的是NSValue对象一直是不可枚举的。NSValue主要针对结构体进行包装。

基本使用:

封装自定义结构体:

首先自定义结构体一个:

然后将结构体转为NSValue,并存入数组


系统预定义方法,用于包装CGPoint、CGSize等结构体:


NSNumber

NSNumber主要针对于基本数据类型的包装,NSNumber继承于NSValue。


延伸:NSDecimalNumber

NSDecimalNumber继承于NSNumber,NSDecimalNumber提供了科学计数法的表示方法。

如果需要在应用程序中进行货币计算,可以使用NSDecimalNumber子类以保证最大的精度。由于该子类可以使用具有38位有效数字且指数范围在-128~127的数字,所以不需要担心舍入误差和其他浮点数据运算的数据损失问题。

 

尊重原创内容,转载请注明出处
本文链接地址: http://www.awnlab.com/archives/128

为您推荐

发表评论

电子邮件地址不会被公开。 必填项已用*标注