Objective-C 数字
-
数字
在Objective-C编程语言中,为了以对象形式保存int,float,bool等基本数据类型,Objective-C提供了使用NSNumber的多种方法,下表列出了重要的方法。方法 说明 + (NSNumber *)numberWithBool:(BOOL)value 创建并返回一个包含给定值的NSNumber对象,将其视为BOOL。 + (NSNumber *)numberWithChar:(char)value 创建并返回一个包含给定值的NSNumber对象,将其视为带符号的char。 + (NSNumber *)numberWithDouble:(double)value 创建并返回一个包含给定值的NSNumber对象,将其视为double。 + (NSNumber *)numberWithFloat:(float)value 创建并返回一个包含给定值的NSNumber对象,将其视为float。 + (NSNumber *)numberWithInt:(int)value 创建并返回一个包含给定值的NSNumber对象,将其视为带符号的int。 + (NSNumber *)numberWithInteger:(NSInteger)value 创建并返回一个包含给定值的NSNumber对象,将其视为NSInteger。 - (BOOL)boolValue 以BOOL形式返回接收者的值。 - (char)charValue 以char形式返回接收者的值。 - (double)doubleValue 以双精度值形式返回接收者的值。 - (float)floatValue 以浮点数形式返回接收者的值。 - (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() { 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; }
编译,执行,我们可以看到以下输出-2020-08-06 08:59:23.802 test[3256:13484] The product is 105