iOS学习14之OC NSNumber + NSValue
1、NSNumber
数值类。
作用:实现基本数据类型与OC对象类型的相互转化。
1> NSNumber创建对象
// 初始化方法
NSNumber *num1 = [[NSNumber alloc] initWithInt:];
// 类方法
NSNumber *num2 = [NSNumber numberWithInteger:];
// 字变量
NSNumber *num3 = @;
NSNumber字面量
// 常量:
NSNumber *intNumber = @;
NSNumber *charNumber = @'w';
// 变量:
int age = ;
NSNumber *ageNumber = @(age);
char gender = 'w';
NSNumber *genderNumber = @(gender);
2> NSNumber常用方法
① 其他类型转化为NSNumber
int类型转化为NSNumber类型的对象
+ (NSNumber *)numberWithInt:(int)value;
float类型转化为NSNumber类型的对象
+ (NSNumber *)numberWithFloat:(float)value;
char类型转化为NSNumber类型的对象
+ (NSNumber *)numberWithChar:(char)value;
② NSNumber转化为其他类型
NSNumber类型对象转化为int类型的数据
@property (readonly) int intValue;
NSNumber类型对象转化为float类型的数据
@property (readonly) float floatValue;
NSNumber类型对象转化为char类型的数据
@property (readonly) char charValue;
int a = [num2 intValue];
double b = [num1 doubleValue];
NSLog(@"%d,%f", a, b);
NSLog(@"%@", num1);
2、NSValue
完成 结构体 和 对象类型 的互转。
1> NSRange类型转化为NSValue类型的对象
+ (NSValue *)valueWithRange:(NSRange)range;
NSPoint, NSRect, NSSize, CGSize, CGPoint, CGRect结构体类型 转化为NSValue类型的对象,使用方法同上,用法略!
注: CGSize, CGPoint, CGRect是UI中使用的结构体类型。
2> NSValue类型转化为NSRange类型的结构体变量
@property (readonly) NSRange rangeValue;
NSValue结构体类型转化为NSPoint, NSRect, NSSize, CGSize, CGPoint, CGRect类型的结构体变量,使用方法同上,用法略!
总结:
NSNumbe 、NSValue主要是为了完成基本数据类型,结构体和对象 的互转,便于与collection配合使 (collection — — 集合)。
iOS学习14之OC NSNumber + NSValue的更多相关文章
- OC NSNumber NSValue
OC NSNumber NSValue iOS的集合对象不可以存储C语言基本类型,所有可以进行装箱和拆箱,来进行OC对象操作. NSNumber包装类 普通初始化 NSNumber * num1 = ...
- IOS学习之路--OC的基础知识
1.项目经验 2.基础问题 3.指南认识 4.解决思路 ios开发三大块: 1.Oc基础 2.CocoaTouch框架 3.Xcode使用 -------------------- CocoaTouc ...
- 【IOS学习基础】OC类的相关
几天前突然在别人的类的.m文件中看到这么一句代码:@synthesize xxxx = _xxxx; 当时愣是没理解啥意思,过后才缓过神来发现原来是把一些类的基础知识忘记了,虽然不用过多去深究以前的一 ...
- iOS学习17之OC内存管理
1.内存管理的方式 1> iOS应用程序出现Crash(闪退),90%的原因是因为内存问题. 2> 内存问题 野指针异常:访问没有所有权的内存,如果想要安全的访问,必须确保空间还在 内存泄 ...
- iOS学习10之OC类和对象
本次是OC的第一节课,主要是学习和理解类与对象 1.面向对象 1> OOP(Object Oriented Programming)面向对象编程. 面向对象以事物为中心,完成某件事情都需要哪些事 ...
- iOS学习15之OC集合
1.数组类 1> 回顾C语言数组 数组是一个有序的集合, 来存储相同数据类型的元素. 通过下标访问数组中的元素,下标从 0 开始. 2> 数组 数组是一个有序的集合,OC中的数组只能存储对 ...
- iOS学习16之OC集合遍历和数组排序
1.集合遍历 1> 遍历 集合(Collection):OC中提供的容器类:数组,字典,集合. 遍历:对集合中元素依次取出的过称叫做遍历. 三种方式:① for循环遍历: ② NSEnumera ...
- iOS学习13之OC NSString类
C语言中,字符串是有char(ASC||码)字符组成. OC中,字符串是由unichar(Unicode)字符组成. 1.字符串(NSString) NSString:不可变字符串,即:创建以后,内容 ...
- ios学习之旅--oc对象的关系
1.匿名对象:就是没有名字对象 1.匿名对象仅用一次 使用场景: 1.当我们仅仅要调用一个对象的某个方法一次的时候能够使用匿名对象 2.匿名对象能够作为函数的实际參数 #imp ...
随机推荐
- 51nod1049(计算最大子段和)
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1049 题意:又是仲文题诶- 思路:暴力会超时,又好像没什么专门 ...
- Sample Apps by Android Team -- Amazed
Sample Apps by Android Team 代码下载:http://pan.baidu.com/s/1eSNmdUE , 代码原地址:https://code.google.com/arc ...
- SQL学习笔记----更改SQL默认的端口号
1.SQLServer配置管理器----SQLServer网络配置----MSSQLSERVER的协议---TCP/IP(已启用)---IP地址 清空素有的IP,在IPALL下更改默认的端口: 2. ...
- C#学习笔记----C#中的闭包机制
http://www.cnblogs.com/jiejie_peng/p/3701070.html http://www.cnblogs.com/Ribbon/p/3611457.html “ 若匿名 ...
- MVC基础知识 – 2.新语法
1.自动属性 Auto-Implemented Properties 2.隐式类型 var 3.参数默认值 和 命名参数 4.对象初始化器 与 集合初始化器 { } 5.匿名类 & 匿名方法 ...
- Redis处理文件日志并发(2)
多线程操作同一个文件时会出现并发问题.解决的一个办法就是给文件加锁(lock),但是这样的话,一个线程操作文件时,其它的都得等待,这样的话性能非常差.另外一个解决方案,就是先将数据放在队列中,然后开启 ...
- 终于看完<LEARNING SQL>第二版,立此存照
- PHP类方法重写原则
可能我们日常工作中很少用到这块知识点,但我还是喜欢把遇到的却不清楚的知识点摸清 PHP的类方法重写规则 1.final修饰的类方法不可被子类重写 final修饰的类方法不可被子类重写 即便final ...
- 在MAVEN仓库中添加ORACLE JDBC驱动
本文转载自 http://www.cnblogs.com/leiOOlei/archive/2013/10/21/3380568.html 因为已经是第二次遇到,所以COPY过来,怕以后别人的BLOG ...
- Parallel.js初探
今天闲着看了一下Parallel.js.这个库暂时貌似还没有什么中文的介绍(可能暂时用的人都不多吧).所以就只能上github找它得源码和介绍看看了.貌似它的代码也不多,以后可以深入研究一下. 先简单 ...