美文网首页
iOS-runtime实践

iOS-runtime实践

作者: doudo | 来源:发表于2017-09-25 15:54 被阅读6次

    目录

    1. 动态添加一个类
    2. 打印一个类的所有ivar, property 和 method
    3. 给分类增加属性
    4. 动态添加方法实现
    5. 更换方法调用者
    6. 更改特定方法的实现

    1. 动态添加类

    // 创建一个类(size_t extraBytes该参数通常指定为0, 该参数是分配给类和元类对象尾部的索引ivars的字节数。)
    Class clazz = objc_allocateClassPair([NSObject class], "GoodPerson", 0);

    // 添加ivar
    // @encode(aType) : 返回该类型的内部表示字符串, 如@encode(int) -> i
    class_addIvar(clazz, "_name", sizeof(NSString *), log2(sizeof(NSString *)), @encode(NSString *));
    class_addIvar(clazz, "_age", sizeof(NSUInteger), log2(sizeof(NSUInteger)), @encode(NSUInteger));

    // 注册该类
    objc_registerClassPair(clazz);

    资料:
    iOS-Runtime-实践篇(基本功能)
    [iOS] runtime 的使用场景--实战篇

    相关文章

      网友评论

          本文标题:iOS-runtime实践

          本文链接:https://www.haomeiwen.com/subject/sscdextx.html