instrumentObjcMessageSends

作用

打印OC内部调用了哪些方法

用法

  1. 声明外部函数
extern void instrumentObjcMessageSends(BOOL);
  1. 设置起点和终点
int main(int argc, const char * argv[]) {
    @autoreleasepool {
        
        Person *p = [Person new];
        
        instrumentObjcMessageSends(YES);
        [p run];
        instrumentObjcMessageSends(NO);
        
    }
    return 0;
}
  1. 查看打印日志
    /private/tmp/文件夹下,会发现msgSends-xxxx文件,打开查看
instrumentObjcMessageSends_第1张图片
image.png

因为在Person类中我没有写run方法的具体实现,所以可以在日志中看到OC的动态决议消息转发流程

你可能感兴趣的:(instrumentObjcMessageSends)