• 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】区别

  • 相关阅读:
    thinkphp中插入ueditor编辑器的代码
    编辑器
    php中上传图片,原生代码
    thinkphp中上传图片以及制成缩略图
    https://www.oschina.net/project/lang/19/java
    js中各种弹窗
    MYSQL数据库中中文乱码问题
    关于对CSS中超链接那部分的设置
    Collectors.groupingBy应用
    定时器算法
  • 原文地址:https://www.cnblogs.com/hyating/p/9116371.html
Copyright © 2020-2023  润新知