个性化阅读
专注于IT技术分析

Objective-C数字对象NSNumber – Objective-C开发教程

上一章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;
}
赞(0)
未经允许不得转载:srcmini » Objective-C数字对象NSNumber – Objective-C开发教程

评论 抢沙发

评论前必须登录!