学习过OC的同学应该都知道,OC中很多类型都是对象,NSArray中存储的是对象类型。所以把基本的C语言中的数字类型转换为OC中的NSNumber类型很有必要,下面就介绍几个常用的方法:
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[])
{
@autoreleasepool {
//1.创建NSNumber对象
NSNumber *num1 = [[NSNumber alloc] initWithFloat:10.5];
NSLog(@"%@", num1);
//2.将num1转为基本数据类型
float value = [num1 floatValue];
NSLog(@"%.2f", value);
//3.将对象转换为NSString类型的对象
NSString *numStr = [num1 stringValue];
NSLog(@"%@", numStr);
//如何将NSString类型的对象转为浮点型
float value1 = [numStr floatValue];
NSLog(@"%.3f", value1);
//4.判断两个NSNumber类型的对象是否相等
NSNumber *num2 = [[NSNumber alloc] initWithFloat:10.5];
//isEqualToNumber: 比较的是对象中存储的数据
BOOL isEqual = [num1 isEqualToNumber:num2];
NSLog(@"isEqual=%d", isEqual);
//5.比较 compare:
NSComparisonResult result = [num1 compare:num2];
NSLog(@"%ld", result);
}
return 0;
}
具体的一些操作说明可以看代码中的注释,说的比较清楚。因为代码比较短,所以就把完整的代码给放上去了,其实这也是我在学习中总结的东西,基本上只实现了一种方法:float与对象和字符串的相互转换,另外int、short等C语言中的数字类型也可以用类似的方法来实现。另外BOOL类型也可以存储到NSNumber对象中。
转载于:https://blog.51cto.com/winann/1416971