NSNumber有什么用

为什么有基础数据类型OC还要包装一个NSNumber类型?

原因就是int,long等基本类型不能被存到NSArray和NSMutabeArray中,因为NSArray和NSMutabeArray中只能存储OC的对象,而int,long等基本类型是不能存入的,但要是需求确实需要存入基本类型的数据怎么办呢?这时候用NSNumber转换一下就能存入了。

再对应到后端,如果有一个接口返回用户信息,其中一个字段是age,并且返回了nil 或者 age 字段未返回。这样对应到OC里面的NSNumber就产生了:

为nil 或 未返回,可以表明用户未设置,或者说后端没有这个情报。如果用基本类型,会有一个默认值为0,这样并不能说明是用户没有设置还是年龄确实为0。

如果要替代NSNumber其实使用int指针是可以达到同样的效果,但包装成NSNumber是符合了面向对象的思想的。在NSNumber上添加各种方法就会变得方便。

iOS里面建模:

age: NSNumber

你可能感兴趣的:(NSNumber有什么用)