由Struct到NSData和NSValue
来源:互联网 发布:mac版spss中文版下载 编辑:程序博客网 时间:2024/05/21 13:21
NSValue:(只能存放那些没有指针变量的结构,不然就只有指针地址被编码,而数据没有被编码)
是一个存储C/C++或者Obj-C数据的容器类。它可以保存任意类型的数据,比如C/C++标准的int,float,char等,也可以是指针、结构,以及Obj-C的对象。
NSValue类的目标就是允许以上数据类型的数据结构能够被添加到集合里。
使用NSValue要注意:不可以存储C字符串、不定长数组/结构和其他一些不定长的数据类型到NSValue中,你应该使用NSString或者NSData来存储此类不定长数据。当然你可以把一个指向变长对象的指针存储在NSValue对象中。
typedef struct{
char value1;
char value2;
int value3;
}NSValueTest;
NSValueTest user={@"张三",@"hehe",2};
NSValue *userValue=[NSValue valueWithBytes:&user objCType:@encode(User)];
NSArray *myArray=[NSArray arrayWithObjects:@"h1",userValue,nil];
userValue=[myArray objectAtIndex:1];
[userValue getValue:&user];
NSLog(@"用户姓名: %@",user.name);
NSDictionary:
1. 将 infoStruct转换为NSData
NSData * msgData = [[NSData alloc]initWithBytes:&infoStruct length:sizeof(infoStruct)];
2. 将 msgData转换为 MYINFO 对象。
struct MYINFO infoStruct2;
[msgData getBytes:&infoStruct2 length:sizeof(infoStruct2)];
http://www.tekuba.net/program/276/
http://www.cnblogs.com/pengyingh/articles/2371398.html
- 由Struct到NSData和NSValue
- NSNumber,NSValue和NSData
- 【Objective-C基础】NSNumber,NSValue和NSData
- 基础类型封装成NSNumber,NSValue和NSData后存储到NSArray/NSDictionary
- NSNumber, NSValue, NSData
- 【黑马程序员】【Foundation框架】NSNumber、NSValue和NSData
- NSData, NSValue, NSKeyedArchiver and non objects
- NSNumber、NSData、NSValue的使用场景
- 06.黑马程序员-NSNumber、NSValue、NSData
- NSValue NSNumber NSData类
- NSNumber、NSValue、NSData区别与联系
- IOS开发-NSNumber、NSValue、NSData的区别
- struct 转对象(NSValue)
- Objective-C--- NSValue 详解 struct 结构体
- NSMutableArray中存放struct以及NSValue详解
- Objective-C中使用NSValue、NSNull、NSNumber、NSDecimalNumber、NSData、NSMutableData
- 黑马程序员——文件操作-NSData、NSValue
- OC类 之 NSData NSDate NSSet NSNumber NSValue
- PHPUnit入门篇
- 360笔试题目-HashMap实现
- Android_Handler用法
- yii2学习笔记(四)环境配置
- Spring MVC 中 HandlerInterceptorAdapter的使用
- 由Struct到NSData和NSValue
- 2015编程之美初赛第一场 A 彩色的树
- 哈工大 数据库实验2-使用高级语言操作MySQL数据库
- struts2-通用和控制标签大纲
- Python模拟登陆v2ex
- 树形dp学习笔记
- 第八周项目4——String类的构造
- [黑马程序员]9 JAVA基础- 网络编程
- mybatis下处理mysql中的blob