作用
打印OC内部调用了哪些方法
用法
- 声明外部函数
extern void instrumentObjcMessageSends(BOOL);
- 设置起点和终点
int main(int argc, const char * argv[]) {
@autoreleasepool {
Person *p = [Person new];
instrumentObjcMessageSends(YES);
[p run];
instrumentObjcMessageSends(NO);
}
return 0;
}
- 查看打印日志
到/private/tmp/
文件夹下,会发现msgSends-xxxx
文件,打开查看
因为在Person
类中我没有写run
方法的具体实现,所以可以在日志中看到OC的动态决议
和消息转发
流程