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