美文网首页
2019 面试前的准备 -- runtime

2019 面试前的准备 -- runtime

作者: Victory_886 | 来源:发表于2019-04-07 22:44 被阅读0次

runtime 笔记

获取类的所有属性和变量 class_copyIvarList

    #import <objc/runtime.h>

    @interface UIViewController () {
        int num; // 写在这里的都是变量
    }
    @end
    
     /// property 用该关键字定义的都属于属性
    @property (nonatomic, copy) NSString *name;
    @property (nonatomic, strong) UIView *rootView;

    @implementation UIViewController
    - (void)viewDidLoad {
    
        [super viewDidLoad];

        unsigned int count = 0;
        Ivar *ivarList = class_copyIvarList(self.class, &count);

        for (int i = 0; i < count; i ++) {

            Ivar ivar = ivarList[i];
            NSString *ivarName = [NSString stringWithUTF8String:ivar_getName(ivar)];
            LLog(@"%@",ivarName);
         }
        free(ivarList);  /// 使用copy的需要释放一下
    }

输出结果:

Cls:UIViewController.m:(49) num
Cls:UIViewController.m:(49) _name
Cls:UIViewController.m:(49) _rootView

获取所有属性 class_copyPropertyList

    unsigned int count = 0;
    objc_property_t *properts = class_copyPropertyList(self.class, &count);
    for (int i = 0; i < count; i++) {

        objc_property_t property = properts[i];
        NSString *pName = [[NSString alloc] initWithCString:property_getName(property) encoding:(NSUTF8StringEncoding)];
        NSLog(@"%@",pName);
    }
    free(properts);

输出结果:

MJApp[987:250406] name
MJApp[987:250406] rootView

获取类中的所有方法 class_copyMethodList

    Method *mList = class_copyMethodList(self.class, &count);

    for (int i = 0; i < count; i++) {

        NSLog(@"%s",sel_getName(method_getName(mList[i])));
    }
    free(mList);

输出结果:

MJApp[993:251372] .cxx_destruct
MJApp[993:251372] setName:
MJApp[993:251372] name
MJApp[993:251372] viewDidLoad
MJApp[993:251372] rootView
MJApp[993:251372] setRootView:
属性自动生成set、get方法。

相关文章

  • 2019 面试前的准备 -- runtime

    runtime 笔记 获取类的所有属性和变量 class_copyIvarList 输出结果: 获取所有属性 cl...

  • 2019 面试前的准备 -- Copy

    个人的面试总结 第一不管面聊还是笔试都少不了的一个问题 一、深拷贝与浅拷贝 浅拷贝 浅拷贝就是对内存地址的复制,让...

  • 面试前准备

    1.简历需要精心整理 2.面试回答一定要准确 3.晚上1~2点投递简历,确保HR第一眼看到自己的简历 4,差的作品...

  • 面试前准备

    1.一份比较完美的简历。 2.了解所面试的职位。 3了解公司背景、基本的组织架构、运营方式、企业文化、所处整体行业...

  • 面试前准备

    明后天有面试, 等会去搞一点A4纸,用来写点简历, 接着,准备几件面试可以穿的衣服, 然后,准备中英文的自我介绍,...

  • 面试前的准备

    居然好几个同学问我这样的问题,说不知道怎么回答: 你在上一家公司的工作内容 你在项目中是负责哪个模块的开发的 你是...

  • 面试前的准备

    1.对简历的熟悉 2.基础技能+ 刷题 有的知识可以找面经,刷题可以去牛客网刷,平常刷一刷,不会也大体有个印象。 ...

  • 面试前的准备

    【148/20000】今日份读书笔记,期待你的想法 无论是刚刚开始职业之路,还是已经工作几年,在开始一份新工作之前...

  • 面试前后-面试前准备

    面试是所有人必经之路从学校走向社会,今天重点关注在面试前,结合自身经验泛泛而谈 面试前大多数人都会忐忑不安,一遍又...

  • Runtime面试题与栈区参数

    Runtime面试题与栈区参数Runtime面试题与栈区参数

网友评论

      本文标题:2019 面试前的准备 -- runtime

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