Runtime也就是运行时,是苹果官方提供的一套C语音库,那有什么作用呢?简单的来说,Runtime可以做很多的底层操作,比如说访问隐藏的一些成员变量,成员方法,当然包括了私有的成员变量,成员方法.举个简单的例子,如果我们想要修改TextField的placeholder的颜色, ...
Runtime也就是运行时,是苹果官方提供的一套C语音库,那有什么作用呢?简单的来说,Runtime可以做很多的底层操作,比如说访问隐藏的一些成员变量,成员方法,当然包括了私有的成员变量,成员方法.
举个简单的例子,如果我们想要修改TextField的placeholder的颜色,那该怎么做? 在TextField的所提供的api中并没有直接提供修改的方法,当然还是有attributedPlaceholder的这个方法,如果单独来看这个方法,没有接触过的话,不会知道这个可以修改placeholder的颜色,那么 我们可以通过Runtime的方法,打印出TextField的所用成员变量,那么一定可以找到我们想要的属性,而系统自带的属性,通常都是只读属性,那么我们只需要通过KVC就可以实现赋值,KVC的最大的作用就是给只读属性赋值拉~~
使用Runtime的话,需要引头文件
#import <objc/runtime.h>
// 程序刚开始的时候会运行,bi且只会运行一次+ (void)initialize { [self getIvars];}+ (void)getIvars { unsigned int count = 0; // 拷贝出所有的成员变量列表 Ivar *ivars = class_copyIvarList([UITextField class], &count); for (int i = 0; i < count; i ++) { // 取出成员变量 Ivar ivar = ivars[i]; QYLog(@"%s, %s", ivar_getName(ivar), ivar_getTypeEncoding(ivar)); } // 释放 free(ivars);}
海外公司注册、海外银行开户、跨境平台代入驻、VAT、EPR等知识和在线办理:https://www.xlkjsw.com
原标题:RunTime的作用
关键词:
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。