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的更多相关文章

  1. NSValue NSNumber NSData类

    NSValue NSNumber NSData类 步骤1 NSValue 我们先看看NSValue能做什么: 一个NSValue对象是用来存储一个C或者Objective-C数据的简单容器.它可以保存 ...

  2. NSNumber 与NSValue

    NSNumber与NSValue关系与作用 .由于集合里只能存放对象,不可以存放基本数据类型,所以我们有时候需要讲一些对象比如基本数据类型,结构体等存到NSDictionary NSArray中,我们 ...

  3. ios 常用字符串的操作

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

  4. 黑马程序员——OC语言Foundation框架 NSArray NSSet NSDictionary\NSMutableDictionary

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一) NSNumber 将各种基本数据类型包装成NSNumber对象 @ ...

  5. OC之0801

    1,字符串 字符串的创建:两种常用初始化方式 NSString *str=[[NSString alloc]initWithFormat:@"i am a boy"]; NSStr ...

  6. IOS NS 字符串 数组 字典 文件 动态 静态 操作

    ios 常用字符串的操作   //将NSData转化为NSString        NSString* str = [[NSString alloc] initWithData:response e ...

  7. iOS 面试题:OC基本概念题

    1.什么是类和对象? 类是一组具有同样特征和功能的事物的抽象 对象描写叙述了一个物体的特征和行为实现 类是对象的抽象 对象是类的实例 2.OC中定义类,创建对象,使用对象. OC中定义类分为接口部分, ...

  8. ios 字符串的操作汇总

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

  9. objective-c之各种数值

    各种数值 NSArray和NSDictionary都只能存储对象,不能存储任何基本类型的数据,如int,float,struct.因此我们可以用对象来封装基本的数值. NSNumber Cocoa提供 ...

随机推荐

  1. 基于HTML5的WebGL电信网管3D机房监控应用

    先上段视频,不是在玩游戏哦,是规规矩矩的电信网管企业应用,嗯,全键盘的漫游3D机房: http://www.hightopo.com/guide/guide/core/3d/examples/exam ...

  2. 实现UniqueAttribute唯一性约束

    using System; using System.ComponentModel.DataAnnotations; using System.Data.Entity; namespace Zwj.T ...

  3. python基础知识理解

    一.概述 看了一天的python基础语法,基本对python语法有了一个大概的了解(其实之前断断续续也看过python),学习网址:Python 基础教程.因为之前我学过C++,因此在学习python ...

  4. ECLIPSE ANDROID PROJECT IMPORT SUMMARY

    ECLIPSE ANDROID PROJECT IMPORT SUMMARY======================================Manifest Merging:------- ...

  5. 【转载】ASP.NET MVC Web API 学习笔记---联系人增删改查

    本章节简单介绍一下使用ASP.NET MVC Web API 做增删改查.目前很多Http服务还是通过REST或者类似RESP的模型来进行数据操作的.下面我们通过创建一个简单的Web API来管理联系 ...

  6. 参考例子,学习Func<T, TResult>委托

    这些天,开发ASP.NET MVC,其间有查找资料,发现一个全新的Func<T, TResult> 委托.让我们在开发时,节省与简化很多. 在开发过程中,我们需要把一个泛型List< ...

  7. MySQL Workbench返回所有的记录

    使用MySQL Workbench查询数据库,当返回的记录较多时,不能显示所有的记录,因为MySQL Workbench默认只返回1000条记录. 为了显示所有的记录,可以在查询语句后面加一句: LI ...

  8. Eclipse常用的快捷键

    Eclipse常用快捷键 1,       Ctrl+S,保存文档. 2,       Tab,多行同时右移:选中多行 3,       shlft+tab,多行同时左移,选中多行 4,       ...

  9. 使用HttpDownLoadHelper下载文件

    using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.IO ...

  10. C++学习笔记13:运算符重载(赋值操作符2)

    移动语义 完成所有权的移交,当拷贝构造和赋值构造时,目标对象的所有权必须移交给我们的新的对象,原始对象将丧失所有权,_p指针将不再指向原来的那个数组: 左值与右值 C原始定义 左值:可以出现在赋值号的 ...