Foundation 之 NSValue
来源:互联网 发布:淘宝清仓的报名流程 编辑:程序博客网 时间:2024/06/05 15:21
NSValue
NSValue是NSNumber的父类,可以将指针、结构体等复杂的数据类型存储为对象。
NSValue同NSNumber一样,也是一个类簇,它可以生成各种数据类型的对象。
把结构体数据存储为对象
struct sct{int a;
int b;
}sct1 = {4, 5};
NSValue * value = [[NSValue alloc] initWithBytes:&sct1 objCType:@encode(struct sct)];
// 第一个参数&sct1是要存储数据的地址,
// 第二个参数@encode(struct sct)是将要存储的数据类型转换成一个字符串标识
// 如 NSLog(@"%s", @encode(int)); 能打印出int型转换成的字符串标识
判断NSValue是何种数据类型的对象
用NSValue对象的objCType方法查看它的数据类型字符串标识。如:if(strcmp(value.objCType, @encode(struct sct)) == 0){
NSLog(@"It is struct sct.");
}
从结构体对象中把数据取出来
struct sct newSct1;[value getValue: &newSct1]; // 参数传入的是要存储取出来的数据的地址
// 从value对象中取出结构体数据到newSct1
NSLog(@"%d %d", newSct1.a, newSct1.b);
把指针存储为对象
char * p = 0x1f;NSValue * value = [[NSValue alloc] initWithBytes:&p objCType:@encode(char *)];
从指针对象中把指针取出来
char * newP;[value getValue: &newP]; // 传入地址
NSLog(@"%p", newP);
根据存储的数据的不同,生成的对象是不同类的对象
CGPoint point;CGSize size;
CGRect rect;
NSValue * pointValue = [NSValue valueWithPoint:point];
NSValue * sizeValue = [NSValue valueWithSize:size];
NSValue * rectValue = [NSValue valueWithRect:rect];
NSValue * rangeValue = [NSValue valueWithRange:NSMakeRange(3,4)];
0 0
- Foundation 之 NSValue
- Foundation--NSValue
- foundation-NSValue
- OC学习笔记之Foundation框架NSNumber、NSValue和NSDate
- 黑马程序员——foundation框架之NSNumber,NSDate,NSValue
- 黑马程序员-Foundation-NSValue
- Foundation -- OC集合 --NSValue
- Foundation中的NSNumber与NSValue
- Foundation NSNumber NSValue NSNull NSDate
- 【Foundation-86-2】#import <Foundation/NSValue.h>
- Objective-C边学边记-10:Foundation Kit快速教程之 各种数值(NSNumber,NSValue,NSNull
- Objective-C之Foundation框架NSNumber、NSNull、NSValue、NSDate用法介绍
- 黑马程序员-OC学习笔记之Foundation框架NSNumber、NSValue和NSDate
- 黑马程序员-OC学习笔记之Foundation框架NSNumber、NSValue和NSDate
- 黑马程序员——Foundation学习之NSNumber\NSValue\NSNull\NSFileManager\NSDate\NSData
- OC--Foundation-NSDictionary,NSNumber,NSDate,NSValue
- 【Foundation】19-NSNumber、NSValue和NSDate
- Foundation框架-05 NSNumber和NSValue
- 编译器前端
- 最长非降子序列O(nlogn)
- <仅是自己做笔记。。。系列-4>输入一个整数和一棵二元树,从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径,打印出和与输入整数相等的所有路径
- linux yum怎么安装 及过程
- keystone 分层多租户
- Foundation 之 NSValue
- Mysql创建触发器实现不同表的插入、更新、删除操作
- 求连续数串和最大的起始、结束位置以及最大值
- MFC程序内存泄露检查
- android 读取联系人实例
- 接口层输入
- hadoop 2.7.1 配置后使用异常
- 用数组取指定模式地址的内容
- 程序47 读取7个数(1—50)的整数值,每读取一个值,程序打印出该值个数的*。