zoukankan      html  css  js  c++  java
  • OC NSNumber NSValue

    OC NSNumber NSValue


    iOS的集合对象不可以存储C语言基本类型,所有可以进行装箱和拆箱,来进行OC对象操作。

    NSNumber包装类

    普通初始化

    NSNumber * num1 = [[NSNumber alloc] initWithInt:20];
    NSNumber * num2 = [NSNumber numberWithChar:'a'];
    

    字面量初始化

    NSNumber * num3 = @300;
    NSNumber * num4 = @123.2;
    NSNumber * num5 = @'X';
    

    变量初始化

    int a = 29;
    NSNumber * num5 = @(a);
    

    NSNumber转基本数据类型

    charValue,intValue,longValue,doubleValue
    

    NSValue包装类

    typedef struct {
        int age;
        char * name;
        char sex;
    } SPerson;
    
    SPerson person;
    person.name = "dahuan";
    person.age = 10;
    person.sex = 'm';
    
    //将一个结构体转换为NSValue对象,
    //@encode(aType) 可以返回该类型的 C 字符串(char *)的表示
    NSValue * value = [NSValue valueWithBytes:&person objCType:@encode(SPerson)];
    
    SPerson person2;
    
    //将一个NSValue对象转换为结构体
    [value getValue:&person2];
    
    NSLog(@"%s",person2.name);
    NSLog(@"%d",person2.age);
    NSLog(@"%c",person2.sex);
    
    NSRange range = {12,2};
    //常用结构体装箱
    NSValue * rvalue =[NSValue valueWithRange:range];
    //rangeValue将NSRange拆箱
    NSLog(@"%@",NSStringFromRange([rvalue rangeValue]));
    
  • 相关阅读:
    day 12 元组的魔法
    day 12 列表的魔法,及灰魔法
    day 11 Python课上练习解释与基础知识练习题试题一
    day 11 rang的用法和练习
    day 10 字符串的魔法
    day1 Python可变与不可变类型
    day1 数据类型
    Math对象
    Calendar对象
    Date对象
  • 原文地址:https://www.cnblogs.com/xubaoaichiyu/p/5493435.html
Copyright © 2011-2022 走看看