runtime基本使用

用法详见ZJRTextFiled


什么是runtime?

1>runtime是一套底层的C语言API(包括很多实用的C语言类型,C语言函数);

2>实际上,平时我们编译的OC代码,底层都是基于runtime实现的

 . 也就是说,我们平时编写的OC代码, 最终都是转成了底层的runtime代码(C语言代码);


/**
 运行时(runtime):
 苹果官方一套C语言库
 能做很多底层操作(比如访问隐藏的一些成员变量\成员方法...)
 */


runtime有啥用?

1>能动态生成一个类,一个成员变量, 一个方法

2>能动态修改一个类,一个成员变量,一个方法

3>能动态删除一个类,一个成员变量,一个方法


// 查找变量基本方法

+ (void)getIvars {
    unsigned int count = 0;
    // 拷贝出所有的成员变量列表
    Ivar *ivars = class_copyIvarList([/*self*/UITableView class], &count);
    
    for (int i = 0; i < count; i ++) {
        // 取出成员变量
        // Ivar ivar = *(ivars + i);
        Ivar ivar = ivars[i];
        // 打印成员变量的名字
        ZJRLog(@"%s %s", ivar_getName(ivar), ivar_getTypeEncoding(ivar));
    }
    // 释放
    free(ivars);
}


// 查找属性基本方法
+ (void)getProperties {
    unsigned int count = 0;
    
    objc_property_t *properties = class_copyPropertyList([UITextField class], &count);
    
    for (int i = 0; i < count; i ++) {
        // 取出属性
        objc_property_t property = properties[i];
        
        // 打印属性名
        ZJRLog(@"%s   <---->   %s", property_getName(property), property_getAttributes(property));
    }
    
    // 释放
    free(properties);
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值