您的位置:首页 > 产品设计 > UI/UE

【Foundation-86-1】#import <Foundation/NSValue.h>基础创建

2015-10-08 20:22 489 查看
"一个NSValue对象是用来存储一个C或者Objective-C数据的简单容器。它可以保存任意类型的数据,比如int,float,char,当然也可以是指pointers,
structures, and object ids。NSValue类的目标就是允许以上数据类型的数据结构能够被添加到集合里,例如那些需要其元素是对象的数据结构,如NSArray或者NSSet的实例。需要注意的是NSValue对象一直是不可枚举的。"--引用

@interface NSValue :NSObject <NSCopying,NSSecureCoding>

- (void)getValue:(void *)value;//
获取value 数据

@property (readonly)const
char *objCTypeNS_RETURNS_INNER_POINTER;// 数据类型

// 保存数据

- (instancetype)initWithBytes:(constvoid *)value objCType:(constchar
*)type NS_DESIGNATED_INITIALIZER;
- (instancetype)initWithCoder:(NSCoder *)aDecoderNS_DESIGNATED_INITIALIZER;//NSCoder
带研究

@end

//结构体(可以自己创建)
CGRect rect = CGRectMake(111, 111, 22, 33);
//value 保存 rect 的地址(CGRect类型)
NSValue *rectValue = [NSValue valueWithBytes:&rect objCType:@encode(CGRect)];
//新newRect
CGRect newRect = CGRectMake(11, 11, 22, 22);
//newRect就可以获取 rectValue 中的数据
[rectValue getValue:&newRect];

NSLog(@"%@",rectValue); //{{111,111},{22,33}}
NSLog(@"%f,%f,%f,%f",newRect.origin.x,newRect.origin.y,newRect.size.width,newRect.size.height);//111,111,22,33
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: