#import "NSObject+RunTimeUtility.h"
#import <objc/runtime.h>
@implementation NSObject (RunTimeUtility)
- (id)getPrivateProperty:(NSString *)propertyName
{
Ivar iVar = class_getInstanceVariable([self class], [propertyName UTF8String]);
if (iVar == nil) {
iVar = class_getInstanceVariable([self class], [[NSString stringWithFormat:@"_%@",propertyName] UTF8String]);
}
id propertyVal = object_getIvar(self, iVar);
return propertyVal;
}
@end
- 使用KVC方式访问 用法很简单:
id view = [self valueForKey:@“controlView"];
- 使用运行时
id view;
Ivar ivar = class_getInstanceVariable([self class], [@"controlView" UTF8String]);
view = object_getIvar(self, ivar);