上一章Objective-C开发教程请查看:Objective-C代码块block的介绍和用法
Objective-C中的所有基本数据类型都不是对象,基本数据类型带有的算法操作相当简单,例如加减乘除。如果我们需要让基本数据类型使用更多的算法操作,那么可以使用对应的OC对象。
这一章我们讨论OC中的数字对象NSNumber,它包装了所有基本数据类型,提供一系列的操作。其中创建NSNumber对象的方法是使用NSNumber类的类方法(static方法),注意类方法的签名以”+”开始,以”-“开始的函数签名是对象方法,需要由对象实例来调用。注意OC中很多方法的命名方式类型,用的时候注意发现其中的相同点。
下面是NSNumber类的一些基本方法:
- + (NSNumber *)numberWithBool:(BOOL)value:使用BOOL类型的布尔值创建一个NSNumber对象。
- + (NSNumber *)numberWithChar:(char)value:使用一个char类型的值创建一个NSNumber对象。
- + (NSNumber *)numberWithDouble:(double)value:使用一个double双精度浮点值创建一个NSNumber对象。
- + (NSNumber *)numberWithFloat:(float)value:使用一个float单精度浮点值创建一个NSNumber对象。
- + (NSNumber *)numberWithInt:(int)value:使用一个int整型数创建一个NSNumber对象。
- + (NSNumber *)numberWithInteger:(NSInteger)value:使用一个NSInteger对象创建一个NSNumber对象。
- – (BOOL)boolValue:将对象中的值作为BOOL类型返回。
- – (char)charValue:将对象中的值作为char类型返回。
- – (double)doubleValue:将对象中的值作为double类型返回。
- – (float)floatValue:将对象中的值作为float类型返回。
- – (NSInteger)integerValue:将对象中的值作为NSInteger对象返回。
- – (int)intValue:将对象中的值作为int类型返回。
- – (NSString *)stringValue:将对象中的值作为字符串类型返回。
下面是使用NSNumber的具体实例:
#import <Foundation/Foundation.h>
@interface SampleClass:NSObject
- (NSNumber *)multiplyA:(NSNumber *)a withB:(NSNumber *)b;
@end
@implementation SampleClass
- (NSNumber *)multiplyA:(NSNumber *)a withB:(NSNumber *)b {
float number1 = [a floatValue];
float number2 = [b floatValue];
float product = number1 * number2;
NSNumber *result = [NSNumber numberWithFloat:product];
return result;
}
@end
int main() {
SampleClass *sampleClass = [[SampleClass alloc]init];
NSNumber *a = [NSNumber numberWithFloat:10.5];
NSNumber *b = [NSNumber numberWithFloat:10.0];
NSNumber *result = [sampleClass multiplyA:a withB:b];
NSString *resultString = [result stringValue];
NSLog(@"The product is %@",resultString);
return 0;
}
评论前必须登录!
注册