Objective-C 学习笔记(三) Numbers/数字

Objective-C Numbers/数字

Objective-C中提供了一系列的NSNumber和重要的工作方法:

+ (NSNumber *)numberWithBool:(BOOL)value创建并返回包含给定值的NSNumber对象,将其视为BOOL。
+ (NSNumber *)numberWithChar:(char)value 
+ (NSNumber *)numberWithDouble:(double)value 
+ (NSNumber *)numberWithFloat:(float)value 
+ (NSNumber *)numberWithInt:(int)value 
+ (NSNumber *)numberWithInteger:(NSInteger)value 
- (BOOL)boolValue以BOOL形式返回接收者的值。
- (char)charValue 
- (double)doubleValue 
- (float)floatValue 
- (NSInteger)integerValue 
- (int)intValue 
- (NSString *)stringValue以可读的字符串的形式返回接收者的值。

 

 

 

 

 

 

 

 

 

 

下面是一个简单的例子,使用的NSNumber两个数字相乘,并返回该产品。

 1 #import <Foundation/Foundation.h>
 2 
 3 @interface SampleClass:NSObject
 4 
 5 - (NSNumber *)multiplyA:(NSNumber *)a withB:(NSNumber *)b;
 6 
 7 @end
 8 
 9 @implementation SampleClass
10 
11 - (NSNumber *)multiplyA:(NSNumber *)a withB:(NSNumber *)b
12 {
13    float number1 = [a floatValue];
14    float number2 = [b floatValue];
15    float product = number1 * number2;
16    NSNumber *result = [NSNumber numberWithFloat:product];
17    return result;
18 }
19 
20 @end
21 
22 int main()
23 {
24    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
25 
26    SampleClass *sampleClass = [[SampleClass alloc]init];
27    NSNumber *a = [NSNumber numberWithFloat:10.5];
28    NSNumber *b = [NSNumber numberWithFloat:10.0];   
29    NSNumber *result = [sampleClass multiplyA:a withB:b];
30    NSString *resultString = [result stringValue];
31    NSLog(@"The product is %@",resultString);
32 
33    [pool drain];
34    return 0;
35 }

解惑:

  • [pool release]和[pool drain]的区别

    release与drain的区别是drain在有GC的环境中会引起GC回收操作,release反之。但在非GC环境中,两者相同。

  • GC == garbage collection,内存的释放采取的垃圾自动回收机制,在编程的时候不用考虑变量不用时释放内存

参考资料:

[1] 易百教程 Objective-C Numbers/数字

[2] 【pool drain】和【pool release】区别

转载于:https://www.cnblogs.com/hyating/p/9116371.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值