下面展示一些 内联代码片
。
获取某个私有属性
/**
获取
*self.phone = UITextfild 已经初始化好的对象
*私有属性名称
*object_getIvar 通过内存地址 获取属性
*/
Ivar ivar = class_getInstanceVariable([self.phone class], "_placeholderLabel");
UILabel *placehoderLabel = object_getIvar(self.phone,ivar);
/**
* 多层次获取 某个属性
*/
Ivar ivar1 = class_getInstanceVariable([self.webView class], "_adapter");
//某个类不可引用它的类型 就用id
id _adapter = object_getIvar(self.webView,ivar1);
Ivar ivar2 = class_getInstanceVariable([_adapter class], "_webView");
WKWebView *web = object_getIvar(_adapter,ivar2);
if (web) {
self.titleView.text = web.title;
}
/**
*特殊情况使用runtime创建
*/
//通过string获取Class
NSClassFromString(@"ViewController");
//通过Class对象获取类名
NSStringFromClass(self);
NSString *name = @"ViewController";
Class cls = NSClassFromString(name);
UIViewController *vc = [[cls alloc] init];