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 的简单实例,它将两个数字相乘并返回乘积。
#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() {
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
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);
[pool drain];
return 0;
}
结果如下:
2022-07-14 18:53:40.575 demo[16787] The product is 105