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]));

OC NSNumber NSValue的更多相关文章

  1. iOS学习14之OC NSNumber + NSValue

    1.NSNumber 数值类. 作用:实现基本数据类型与OC对象类型的相互转化. 1> NSNumber创建对象 // 初始化方法 NSNumber *num1 = [[NSNumber all ...

  2. 黑马程序员_ Objective-c 之Foundation之NSNumber ,NSValue, NSDate

    Objective-c 之Foundation之NSNumber ,NSValue, NSDate 1.NSNumber具体用法如下: 在Objective-c中有int的数据类型,那为什么还要使用数 ...

  3. iOS - OC NSNumber 数字

    前言 @interface NSNumber : NSValue @interface NSDecimalNumber : NSNumber 将基本数据类型包装成 OC 对象 1.NSNumber 与 ...

  4. 数值类对象:NSNumber,NSValue,NSNull

    基本,集合,复杂,对象 可用对象封装基本数值,然后将对象放入NSArray或NSDictionary 中. 用对象封装基本数值后,即可给其发送消息. 数值类型包括:NSNumber,NSValue,N ...

  5. OC NSNumber和NSValue和NSDate和NSData

    一 NSNumber // // main.m // 07-NSNumber // // Created by apple on 13-8-12. // Copyright (c) 2013年 itc ...

  6. NSNumber,NSValue和NSData

    我们在编码中,很多时候需要将C里面原生的数据封装成对象,这样可以用NSDictionary或者NSArray来存取访问.尤其是一些做适配的情况下,这种封装是不可避免的.Objective-C提供了不少 ...

  7. Object-c学习之路十(NSNumber&NSValue)

    // // main.m // NSNumberAndNSValue // // Created by WildCat on 13-7-26. // Copyright (c) 2013年 wildc ...

  8. OC07 -- 迭代器/NSNumber/NSValue/NSRange/NSSet/NSDate 及相互转换.(杂)

    //一: 迭代器 //数组 NSArray *arr=@[@"1",@"2",@"3",@"4",@"5&qu ...

  9. Foundation框架下的常用类(NSNumber, NSValue, NSDate,NSDateFormatter)

    1.NSNumber 将基础数类型数据转成对象数据(比如int  float double BOOL  long等等) //通过NSNumber将基础数类型数据转成对象数据. NSNumber * i ...

随机推荐

  1. Python语言特性之3:@staticmethod和@classmethod

    问题:Python中@staticmethod和@classmethod两种装饰器装饰的函数有什么不同? 原地址:http://stackoverflow.com/questions/136097/w ...

  2. 浅谈Jquery中的bind(),live(),delegate(),on()绑定事件方式

    前言 因为项目中经常会有利用jquery操作dom元素的增删操作,所以会涉及到dom元素的绑定事件方式,简单的归纳一下bind,live,delegate,on的区别,以便以后查阅,也希望该文章日后能 ...

  3. MySQL Cursor

    MySQL Cursor Summary: in this tutorial, you will learn how to use MySQL cursor in stored procedures ...

  4. Spring MVC静态资源处理(转)

    优雅REST风格的资源URL不希望带 .html 或 .do 等后缀.由于早期的Spring MVC不能很好地处理静态资源,所以在web.xml中配置DispatcherServlet的请求映射,往往 ...

  5. Oracle数据库,用户的创建及表的创建

    安装完成之后,打开浏览器,输入https://127.0.0.1:1158/em 链接至登录数据库界面 用户名:sys     口令为安装时设置的密码(一定牢记) 链接身份为:SYSDBA(以系统管理 ...

  6. nginx和apache的比较

    1.nginx的IO是非阻塞的,apache的IO是阻塞的. nginx accept一个连接以后会把它放到EPOLL的消息循环中,APACHE需要启动一个线程,当系统线程达到瓶颈以后,会阻塞网络IO ...

  7. Android APP测试的日志文件抓取

         1    log文件分类简介 实时打印的主要有:logcat main,logcat radio,logcat events,tcpdump,还有高通平台的还会有QXDM日志 状态信息的有: ...

  8. 设置MySQL允许外网访问

    1:设置mysql的配置文件      /etc/mysql/my.cnf      找到 bind-address  =127.0.0.1  将其注释掉://作用是使得不再只允许本地访问:   重启 ...

  9. 2013年最新流行的响应式 WordPress 主题【上篇】

    WordPress 是最流行的内容管理系统,经历了多年的发展和演变.它的成功体现在庞大的社区,数百万的用户,设计师和开发者推动着 WordPress 往更高的层次发展. 海量的免费主题是 WordPr ...

  10. JS高程1.javascript简介

    1.javaScript诞生于1995年,最开始是为了处理以前由服务器端语言负责的一些诸如验证的操作. 2.一些名词: ECMA:European Computer Manufacturers Ass ...