设为首页 加入收藏

TOP

OC NSNumber NSValue
2017-10-13 10:33:11 】 浏览:1162
Tags: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,doubleva lue

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];
//rangeva lue将NSRange拆箱
NSLog(@"%@",NSStringFromRange([rvalue rangeva lue]));
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇新手教程之使用Xib自定义UITableV.. 下一篇iOS 杂笔-23(区分各种空值)

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目