定义Person类 .h文件
@interface Person : NSObject @private //name为私有属性 @property (nonatomic, copy) NSString *name; @end.m文件
@implementation Person @end在某控制器中访问或修改Person类的私有属性name 首先记得引入头文件,然后看下面具体实现
@implementation ViewController - (void)viewDidLoad{ [super viewDidLoad]; Person *p = [Person new]; //修改私有属性的值 [p setValue:@"yyMae" forKey:@"name"]; //访问私有属性的值 NSString *name = [p valueForKey:@"name"]; }同上定义Person类 .h文件
@interface Person : NSObject @private //name为私有属性 @property (nonatomic, copy) NSString *name; @end.m文件
@implementation Person @end在某控制器中访问或修改Person类的私有属性name 首先记得引入头文件,然后看下面具体实现
@implementation ViewController - (void)viewDidLoad{ [super viewDidLoad]; Person *p = [Person new]; // IVar是runtime声明的一个宏 unsigned int count = 0; //count记录变量的数量 // 获取类的所有属性变量 Ivar *members = class_copyIvarList([Person class], &count); for (int i = 0; i < count; i++) { Ivar ivar = members[i]; // 取得属性名并转成字符串类型 const char *memberName = ivar_getName(ivar); NSLog(@"%s",memberName); Ivar name = members[0]; // 修改属性值 object_setIvar(Person, name, @"yyMae"); }