Day08 - Numbers

在 Objective-C 中,为了保存基本的资料类型,像是 int, float, bool,内建了许多与NSNumber有关的方法。

+ (NSNumber *)numberWithBool:(BOOL)value

建立并返回一个包含了给定值的NSNumber实体,将其视为BOOL

+ (NSNumber *)numberWithChar:(char)value         //2
+ (NSNumber *)numberWithDouble:(double)value     //3
+ (NSNumber *)numberWithFloat:(float)value       //4
+ (NSNumber *)numberWithInt:(int)value           //5
+ (NSNumber *)numberWithInteger:(NSInteger)value //6
  1. 建立并返回一个包含了给定值的NSNumber实体,将其视为char
  2. 建立并返回一个包含了给定值的NSNumber实体,将其视为double
  3. 建立并返回一个包含了给定值的NSNumber实体,将其视为float
  4. 建立并返回一个包含了给定值的NSNumber实体,将其视为int
  5. 建立并返回一个包含了给定值的NSNumber实体,将其视为NSInteger
- (BOOL)boolValue         //7
- (char)charValue         //8
- (double)doubleValue     //9
- (float)floatValue       //10
- (NSInteger)integerValue //11
- (int)intValue           //12
- (NSString *)stringValue //13
  1. 返回BOOL
  2. 返回char
  3. 返回double
  4. 返回float
  5. 返回NSInteger
  6. 返回int
  7. 返回NSString

ex.

#import <Foundation/Foundation.h>


@interface SampleClass : NSObject

- (NSNumber *)addA: (NSNumber *)a withB: (NSNumber *)b;

@end

@implementation SampleClass

- (NSNumber *)addA:(NSNumber *)a withB:(NSNumber *)b {
    float number1 = [a floatValue]; // number1 = 类型为 float 的 a 值
    float number2 = [b floatValue];
    float value = number1 + number2;
    NSNumber *result = [NSNumber numberWithFloat:value]; //number 本身不能算术运算,因此先转成 float ,再变为 NSNumber
    return result;
}

@end

int main () {
    
//    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init]; //这与记忆体管理有关,但现在以是自动引用计数模式,已不可用了

    SampleClass *sampleClass = [[SampleClass alloc] init];
    NSNumber *a = [NSNumber numberWithFloat: 11.0];
    NSNumber *b = [NSNumber numberWithFloat: 10.0];
    NSNumber *result = [sampleClass addA:a withB:b];
    NSString *resultString = [result stringValue]; //NSNumber 转为 NSString
    NSLog(@"结果为 %@",resultString);
    
    return 0;
}

结果:

2021-09-28 01:00:31.403729+0800 TestOC[15699:212863] 结果为 21

<<:  【第十四天 - Flutter 官方 CodeLab Get-To-Know 活动报名教学(上)】

>>:  [火锅吃到饱-11] 锅好日 Good Day Pot 个人锅物吃到饱

Day 9:看看别人做了什麽?

前篇整理了学习资源,这篇来看看别人用 JUCE 干了哪些好事。 这位日本开发者用 JUCE 开发处理...

day27: function composition

今天补充一下,function composition 的概念。 在之前我们有提过 pipe 和 c...

Powershell 入门之 可选参数和必选参数

前面我们给我们的脚本添加了参数,今天我们来看看,怎么定义这些参数,使其称为必选参数或可选参数。 我们...

Day 23 : 案例分享(7.2) 库存与制造 - 供应商直运、制造出货、采购出货(自动化库存调拨)

案例说明及适用场景 销售订单出货时,公司可以决定要走公司仓出库路线、或是由供应商直送(用於代销),或...

Day 28 - 设籍有关涉及射击的射击游戏

Intro 这次是写了两个小游戏,并从里面学到一点 member function 的用法,还有字串...