在 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
NSNumber
实体,将其视为char
值NSNumber
实体,将其视为double
值NSNumber
实体,将其视为float
值NSNumber
实体,将其视为int
值NSNumber
实体,将其视为NSInteger
值- (BOOL)boolValue //7
- (char)charValue //8
- (double)doubleValue //9
- (float)floatValue //10
- (NSInteger)integerValue //11
- (int)intValue //12
- (NSString *)stringValue //13
BOOL
值char
值double
值float
值NSInteger
值int
值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 个人锅物吃到饱
前篇整理了学习资源,这篇来看看别人用 JUCE 干了哪些好事。 这位日本开发者用 JUCE 开发处理...
今天补充一下,function composition 的概念。 在之前我们有提过 pipe 和 c...
前面我们给我们的脚本添加了参数,今天我们来看看,怎么定义这些参数,使其称为必选参数或可选参数。 我们...
案例说明及适用场景 销售订单出货时,公司可以决定要走公司仓出库路线、或是由供应商直送(用於代销),或...
Intro 这次是写了两个小游戏,并从里面学到一点 member function 的用法,还有字串...