Objective-C 数字

在 Objective-C 编程语言中,为了以对象形式保存 int、float、bool 等基本数据类型,Objective-C 提供了一系列处理 NSNumber 的方法,重要的方法如下表所示:

编号方法 & 描述
1

+ (NSNumber )numberWithBool:(BOOL)value

创建并返回包含给定值的 NSNumber 对象,将其视为 bool 布尔值。

2

+ (NSNumber )numberWithChar:(char)value

创建并返回包含给定值的 NSNumber 对象,将其视为有符号字符。

3

+ (NSNumber )numberWithDouble:(double)value

创建并返回包含给定值的 NSNumber 对象,将其视为 double

4

+ (NSNumber )numberWithFloat:(float)value

创建并返回包含给定值的 NSNumber 对象,将其视为 float

5

+ (NSNumber )numberWithInt:(int)value

创建并返回包含给定值的 NSNumber 对象,将其视为有符号整数。

6

+ (NSNumber )numberWithInteger:(NSInteger)value

创建并返回包含给定值的 NSNumber 对象,将其视为 NSInteger

7

- (BOOL)bool值

将接收方的值作为 bool 布尔值返回。

8

- (char)char值

以字符形式返回接收方的值。

9

- (double)double值

double 形式返回接收方的值。

10

- (float)float值

float 形式返回接收方的值。

11

- (NSInteger)integer值

将接收方的值作为 NSInteger 返回。

12

- (int)int值

int 形式返回接收方的值。

13

- (NSString *)string值

以可读字符串的形式返回接收方的值。

下面是一个使用 NSNumber 的简单实例,它将两个数字相乘并返回乘积。

  1. #import <Foundation/Foundation.h>
  2. @interface SampleClass:NSObject
  3. - (NSNumber *)multiplyA:(NSNumber *)a withB:(NSNumber *)b;
  4. @end
  5. @implementation SampleClass
  6. - (NSNumber *)multiplyA:(NSNumber *)a withB:(NSNumber *)b {
  7. float number1 = [a floatValue];
  8. float number2 = [b floatValue];
  9. float product = number1 * number2;
  10. NSNumber *result = [NSNumber numberWithFloat:product];
  11. return result;
  12. }
  13. @end
  14. int main() {
  15. NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
  16. SampleClass *sampleClass = [[SampleClass alloc]init];
  17. NSNumber *a = [NSNumber numberWithFloat:10.5];
  18. NSNumber *b = [NSNumber numberWithFloat:10.0];
  19. NSNumber *result = [sampleClass multiplyA:a withB:b];
  20. NSString *resultString = [result stringValue];
  21. NSLog(@"The product is %@",resultString);
  22. [pool drain];
  23. return 0;
  24. }

结果如下:

  1. 2022-07-14 18:53:40.575 demo[16787] The product is 105