NSNumber可以将基本数据类型包装起来,形成一个对象,这样就可以给其发送消息,装入NSArray中等等。
(一)numberWithInt:和numberWithInteger:的区别:
1.如果使用numberWithInt:方法创建一个整型数,需要使用intValve获取它的值,使用%i作为格式化字符串显示它的值。
2.如果使用numberWithInteger:方法创建一个整型数,需要使用integerValue,也可以转换成long显示或者使用stringWithFormat:将它格式化成字符串。使用%li作为格式化字符串。
方法numberWithUnsignedInt:和numberWithUnsignedInteger:的使用类似。
(二)init和with的问题:
NSNumber *myNumber = [[NSNumber alloc] initWithInt:50];
......
[myNumber initWithInt:1000];
程序执行时,最后一条会引起崩溃。需要换成numberWithXxxx函数。
(三)NSComparisonResult枚举类型
很多比较函数会返回NSComparisonResult枚举类型:
type enum _NSComparisonResult{
NSOrderedAscending=-1,
NSOrderedSame,
NSOrderedDescending
}NSComparisonResult;
如果返回NSOrderedAscending 表示左侧小于右侧,返回NSOrderedSame表示两边相等,返回NSOrderedDescending表示左侧大于右侧。