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

转载于:https://www.cnblogs.com/xubaoaichiyu/p/5493435.html

OC NSNumber NSValue相关推荐

  1. OC学习笔记之Foundation框架NSNumber、NSValue和NSDate(转)

    一.NSNumber OC数组类NSArray,它只能存放 OC的对象,对于基本的数据类型确无能为力,但是实际编程中经常要把基本的数据如int.float,结构体存放的OC数组中,怎么办?这里的 NS ...

  2. OC学习笔记之006面向对象包装类,协议

    1.包装类NSValue和NSNumber NSValue是NSNumber的父类,NSNumber是更具体的包装类,包装各种数值类型,主要有三类方法 +numberWithXXX:类方法,直接将特定 ...

  3. IOS相关培训机构课程内容汇总

    达内课程体系 第一阶段.Web开发基础(Linux操作系统.Nigix.XHTML技术核心.CSS技术核心):课程持续3周共96课时. 模块 课程目标 内容 项目 1 Mac Fundamental ...

  4. IOS面试题目(稍微深度型)

    1,NSObject中description属性的意义,它可以重写吗? 答案: 每当 NSLog(@"")函数中出现 %@ 时,都会调用description函数,所以通过重写 d ...

  5. IOS入门开发大概课程内容记录

    达内课程体系 第一阶段.Web开发基础(Linux操作系统.Nigix.XHTML技术核心.CSS技术核心):课程持续3周共96课时. 模块 课程目标 内容 项目 1 Mac Fundamental ...

  6. IOS学习-----课程体系-----坚持就是胜利

    课程内容 内容介绍 预备 1.文件管理器Finder 2.iWork使用Numbers,Keynote,Pages 3.Safari浏览器 Mac Os的使用,iWork的使用 iOS开发基础 1.i ...

  7. OC-------包装类

    目录 6.1 OC的包装类 它们不是包装类 NSValue和NSNumber 6.2 处理对象 打印对象和description方法 ==与isEqual方法 重写isEqual 6.3 类别与拓展 ...

  8. NSString 字符串 操作 常用

    //将NSData转化为NSString         NSString* str = [[NSString alloc] initWithData:response encoding:NSUTF8 ...

  9. IOS学习笔记二十三对象归档(NSKeyedArchiver、NSKeyedUnArchiver、NSCodeing)

    1.NSKeyedArchiver.NSKeyedUnArchiver 1).archiveRootObject:toFile 归档对象到这个路径文件 2).unarchiveObjectWithFi ...

  10. iOS之KVC原理自定义KVC

    前言 开发过程中,很多人都会注意到KVO,以及自定义KVO,实际上KVC的作用也是十分强大的,不仅仅是简单的字典转模型,有关使用技巧可以看上篇文章,这篇文章要根据上篇的总结来进行自定义KVC操作: 相 ...

最新文章

  1. XML – E4X概述
  2. jdbc获取mysql 列信息_JDBC获取数据库信息:获取表中各列的信息
  3. 实模式与保护模式详解二:地址映射
  4. qt显示rgba8888 如何改 frame_Qt音视频开发2-vlc回调处理
  5. SEO关键之密:自己创造一个关键词!
  6. 线程对象Android 开发之多线程处理、Handler 详解
  7. Linux工作笔记-解决安装Qt时缺少libX11-xcb.so.1文件问题
  8. TensorFlow笔记(5) 多元线性回归
  9. 在 Linux、 FreeBSD、 OpenBSD等UNIX操作系统 中查看 所有安装的软件或包
  10. 华科c语言作业,华中科技大学标准c语言程序设计及应用习题答案
  11. linux 平台编程软件下载,慧编程-慧编程linux版下载 v1.2.0官方版--pc6下载站
  12. 初级测试开发工程师应该学些什么
  13. GFlags使用文档
  14. spark初始:spark腾讯雅虎优酷成功应用解析
  15. 银联支付(网银h5)
  16. HTML frameset 标签 cols 属性
  17. 电脑提示MSVCP140.dll文件丢失的解决方法
  18. linux安装 cuda、cdunn、numpy、scipy、theano、pylearn2、scikit-neuralnetwork
  19. uniapp开发中ios底部出现安全距离问题怎么解决?
  20. 环宇成功签约世界级海外文旅夜游项目,探索夜游新模式!

热门文章

  1. mybatis批量删除提示类型错误
  2. 如何成为一名好的程序员的一些个人经验
  3. Linux IO模型漫谈(4)- 非阻塞IO
  4. 关于网上商城开发的随笔记录2
  5. java静态代码审查工具
  6. 快切-开源中文css框架之纯css透明
  7. 内存检查工具valgrind介绍、安装与使用
  8. java socket 组包_关于socket 分包和组包
  9. 【渝粤教育】国家开放大学2018年春季 0161-21T教师职业道德 参考试题
  10. [渝粤教育] 中国地质大学 运筹学1 复习题