NSValue&NSNumber
void testForNSValue(void)
{
int i=10;
// NSLog(@"encode(int)=%s",@encode(int));
// NSLog(@"encode(float)=%s",@encode(float));
// NSLog(@"encode(struct student)=%s",@encode(struct student));
NSValue* value =[[NSValue alloc]initWithBytes:&i objCType:@encode(int) ];
int ret;
[value getValue:&ret];
NSLog(@"ret=%i",ret);
struct s stt={88,99};
NSValue* value2 =[[ NSValue alloc]initWithBytes:&stt objCType:@encode(struct s)];
struct s newStt;
[value2 getValue:&newStt];
NSLog(@"newStt.a=%i, newStt.b=%i",newStt.a,newStt.b);
NSLog(@"objCType is %s", [value2 objCType]);
// @encode(struct s) == [value2 objCType]
int *p=&i;
NSLog(@"p=%p",p);
NSValue* v3 = [[ NSValue alloc]initWithBytes:&p objCType:@encode(int *)];
int *q;
[v3 getValue:&q];
NSLog(@"q=%p",q);
}
void testNSNumber(void)
{
//对4字节有符号整型
NSNumber *obj1 = [ NSNumber numberWithInt:123];
NSLog(@"obj1 is %i",[obj1 intValue]);
//对8字节有符号整型
NSNumber *obj2 = [ NSNumber numberWithInteger:88888888];
NSLog(@"obj2 is %li", [obj2 integerValue]);
//对4字节无符号整型
NSNumber * obj3 = [ NSNumber numberWithUnsignedInt:345];
NSLog(@"obj3 is %u", [obj3 unsignedIntValue]);
//对8字节无符号整型
NSNumber* obj4 = [ NSNumber numberWithUnsignedInteger:99999999];
NSLog(@"obj4 is %lu", [obj4 unsignedIntegerValue]);
//其它的基本数据类型的封装方法
// NSNumber numberWithUnsignedChar:<#(unsigned char)#>
// obj4 unsignedCharValue
// NSNumber numberWithShort:<#(short)#>
// obj4 shortValue
// NSNumber numberWithUnsignedLongLong:<#(unsigned long long)#>
// obj4 unsignedLongLongValue
NSNumber* obj5 = [ NSNumber numberWithBool:YES];
NSLog(@"obj5 is %i",[obj5 boolValue]);
int a;
NSNumber * obj6 = [NSNumber numberWithUnsignedLong:(unsigned long)&a];
int * add = (int *)[obj6 unsignedLongValue];
}
NSValue&NSNumber的更多相关文章
- NSValue NSNumber NSData类
NSValue NSNumber NSData类 步骤1 NSValue 我们先看看NSValue能做什么: 一个NSValue对象是用来存储一个C或者Objective-C数据的简单容器.它可以保存 ...
- NSNumber 与NSValue
NSNumber与NSValue关系与作用 .由于集合里只能存放对象,不可以存放基本数据类型,所以我们有时候需要讲一些对象比如基本数据类型,结构体等存到NSDictionary NSArray中,我们 ...
- ios 常用字符串的操作
//将NSData转化为NSString NSString* str = [[NSString alloc] initWithData:response encoding:NSUTF8S ...
- 黑马程序员——OC语言Foundation框架 NSArray NSSet NSDictionary\NSMutableDictionary
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一) NSNumber 将各种基本数据类型包装成NSNumber对象 @ ...
- OC之0801
1,字符串 字符串的创建:两种常用初始化方式 NSString *str=[[NSString alloc]initWithFormat:@"i am a boy"]; NSStr ...
- IOS NS 字符串 数组 字典 文件 动态 静态 操作
ios 常用字符串的操作 //将NSData转化为NSString NSString* str = [[NSString alloc] initWithData:response e ...
- iOS 面试题:OC基本概念题
1.什么是类和对象? 类是一组具有同样特征和功能的事物的抽象 对象描写叙述了一个物体的特征和行为实现 类是对象的抽象 对象是类的实例 2.OC中定义类,创建对象,使用对象. OC中定义类分为接口部分, ...
- ios 字符串的操作汇总
//将NSData转化为NSString NSString* str = [[NSString alloc] initWithData:response encoding:NSUTF8S ...
- objective-c之各种数值
各种数值 NSArray和NSDictionary都只能存储对象,不能存储任何基本类型的数据,如int,float,struct.因此我们可以用对象来封装基本的数值. NSNumber Cocoa提供 ...
随机推荐
- php版本历史
php最初就是为了快速构建一个web页面而迅速被大家广为接受的.它的好处是在代码中能内嵌html的代码,从而让程序员能再一个页面中同时写html代码和php代码就能生成一个web页面. 这篇文章用时间 ...
- 试试用有限状态机的思路来定义javascript组件
本文是一篇学习性的文章,学习利用有限状态机的思想来定义javascript组件的方法,欢迎阅读,后续计划会写几篇专门介绍自己利用有限状态机帮助自己编写组件的博客,证明这种思路对于编程实现的价值,目前正 ...
- SQL--子查询
什么是子查询 子查询:顾名思义,在一个查询中,有另外一个查询,这个查询就叫做,主查询的子查询. [把一个查询的结果,在另一个查询中使用就叫子查询.(将一个查询语句,作为一个结果集,供其他SQL语句使用 ...
- 2005 TCO Online Round 1 - RectangleError
RectangleError Problem's Link Problem Statement You want to draw a rectangle on a piece of paper. Un ...
- 拓扑排序 --- hdu 4948 : Kingdom
Kingdom Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Total Sub ...
- jquery.tmpl.js 模板引擎用法
1.0 引入: <script src="/js/jquery.tmpl.min.js"></script> 2.0 模板: <script type ...
- c# 访问SQL Server 其他会话正在使用事务的上下文
这个异常是我第二次遇到! 从网上查找资料后知道了是由于数据库链接字符串是远程链接造成的,去掉链接服务器地址就行了,换成普通的链接字符串就可以了
- ArrayList和LinkedList的区别
简单的说,ArrayList是顺序存储,而LinkedList是链式存储.
- Titanium Studio下载地址
http://titanium-studio.s3.amazonaws.com/latest/titanium.studio.linux.gtk.x86_64.zip http://titanium- ...
- spring,mybatis,多数据源配置
spring.xml配置 <!-- 对数据源进行事务管理 --> <bean id="transactionManager" class="org.sp ...