本文主要是介绍【Foundation-86-1】#import Foundation/NSValue.h基础创建,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
"一个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)];//新newRectCGRect 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
这篇关于【Foundation-86-1】#import Foundation/NSValue.h基础创建的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!