iOS 獲取內部私有屬性的方法
阿新 • • 發佈:2018-11-01
在我們使用一些第三方庫時有些屬性並沒有暴露在外面為公有屬性。
這裡分享一個方法可以獲取私有屬性的方法。
NSObject+RunTimeUtility.h
// // NSObject+RunTimeUtility.h // RunTimeStudy // // Created by dujia on 16/1/15. // Copyright © 2016年 杜甲. All rights reserved. // #import <Foundation/Foundation.h> @interface NSObject (RunTimeUtility) - (id)getPrivateProperty:(NSString *)propertyName; @end
NSObject+RunTimeUtility.m
// // NSObject+RunTimeUtility.m // RunTimeStudy // // Created by dujia on 16/1/15. // Copyright © 2016年 杜甲. All rights reserved. // #import "NSObject+RunTimeUtility.h" #import <objc/runtime.h> @implementation NSObject (RunTimeUtility) - (id)getPrivateProperty:(NSString *)propertyName { Ivar iVar = class_getInstanceVariable([self class], [@"address" UTF8String]); if (iVar == nil) { iVar = class_getInstanceVariable([self class], [[NSString stringWithFormat:@"_%@",@"address"] UTF8String]); } id propertyVal = object_getIvar(self, iVar); return propertyVal; } @end
程式碼下載:http://download.csdn.net/detail/qqmcy/9407347