• NSNumber


    1.NSNumber基本概念

    • NSArrayNSDictionary中只能存放OC对象,不能存放intfloatdouble等基本数据类

    • 如果真想把基本数据(比如int)放进数组或字典中,需要先将基本数据类型包装成OC对象

    • NSNumber可以将基本数据类型包装成对象,这样就可以间接将基本数据类型存进NSArrayNSDictionary中

    2.NSNumber的创建

    • 以前
    + (NSNumber *)numberWithInt:(int)value;
    + (NSNumber *)numberWithDouble:(double)value;
    + (NSNumber *)numberWithBool:(BOOL)value;
    • 现在
    @10;
    @10.5;
    @YES;
    @(num);

    3.从NSNumber对象中的到基本类型数据

    - (char)charValue;
    - (int)intValue;
    - (long)longValue;
    - (double)doubleValue;
    - (BOOL)boolValue;
    - (NSString *)stringValue;
    - (NSComparisonResult)compare:(NSNumber *)otherNumber;
    - (BOOL)isEqualToNumber:(NSNumber *)number;
    //  main.m
    //  NSNumber
    
    
    #import <Foundation/Foundation.h>
    
    int main(int argc, const char * argv[]) {
    
        int age = 10;
        double number= 5.1;
        int value =  6;
    //    NSArray *arr =  @[age, number, value];
        // 1.将基本数据类型转换为对象类型
        NSNumber *ageN = [NSNumber numberWithInt:age];
        NSNumber *numberN = [NSNumber numberWithDouble:number];
        NSNumber *valueN = [NSNumber numberWithInt:value];
        
        NSArray *arr = @[ageN, numberN, valueN];
        NSLog(@"arr = %@", arr);
        
        // 2.将对象类型转换为基本数据类型
    //    int temp = [ageN intValue];
    //    double temp = [numberN doubleValue];
    //    NSLog(@"%f", temp);
        
        // 3.基本数据类型转换对象类型简写
        // 注意: 如果传入的是变量那么必须在@后面写上(), 如果传入的常量, 那么@后面的()可以省略
    //    NSNumber *temp = @(number);
        NSNumber *temp  =@10.10;
        NSLog(@"%@", temp);
        
        return 0;
    }
  • 相关阅读:
    基础网络技术--学习网络的的道路漫长啊
    华为nova8se和vivoS7e的区别哪个好
    Java.awt实现一个简单的围棋
    HashMap put原理详解(基于jdk1.8)
    Paper Pal:一个中英文论文及其代码大数据搜索平台
    【u116】最短路计数
    【u108】取数游戏
    【u106】3D模型
    【topcoder SRM 652 DIV2 250】ValueOfString
    【u103】绘制二叉树
  • 原文地址:https://www.cnblogs.com/xufengyuan/p/6647714.html
Copyright © 2020-2023  润新知