Person.h
@property (strong , nonatomic) NSString *name;
Person.m
@property (strong , nonatomic) NSString *age;
怎樣需要訪問Person類中的私有屬性age揭朝?
方法1 通過KVC訪問
Person *p = [[Person alloc]init];
//賦值
[p setValue:@"26" forKeyPath:@"_age"];
//取值
NSString *age = [p valueForKeyPath:@"_age"];
NSLog(@"age = %@",age);
方法2 通過runtime訪問
Person *p = [[Person alloc]init];
//獲取對象的私有屬性
Ivar ivarName = class_getInstanceVariable([p class], "_age");
NSLog(@"屬性名:%s",ivar_getName(ivarName));
//給成員變量賦值
object_setIvar(p, ivarName, @"52");
NSLog(@"age = %@",object_getIvar(p, ivarName));