作品分享
问答交流
发现
任务
客服工单
我们来验证一下是否真的缓存了调用的方法: 未调用personRun时,我们查一下在Person类的cache内里是否能找到personRun方法缓存: Person *person = [[Person alloc] init];mj_objc_class *personClass = (__bridge mj_objc_class *)[Person class];NSLog(@"%@ %p",NSStringFromSelector(@selector(personRun)), personClass->cache.imp(@selector(personRun)));打印结果如下: 2022-04-10 13:11:30.367394+0800 RuntimeDemo[88049:12459843] personRun 0x0结果分析:在cache并没有找到personRun的IMP。 调用personRun之后,我们查一下Person类的cache内里是否能找到personRun方法缓存: Person *person = [[Person alloc] init];[person personRun];mj_objc_class *personClass = (__bridge mj_objc_class *)[Person class];NSLog(@"%@ %p",NSStringFromSelector(@selector(personRun)), personClass->cache.imp(@selector(personRun)));打印结果如下: 2022-04-10 13:13:30.294687+0800 RuntimeDemo[88074:12461806] personRun 0x78cc0结果分析:调用personRun之后,会把personRun缓存到方法缓存内里
实例方法流程
类方法流程
举报
本版积分规则 回帖后跳转到最后一页
Powered by CangBaoKu v1.0 小黑屋藏宝库It社区( 冀ICP备14008649号 )
GMT+8, 2025-8-23 20:07, Processed in 0.150347 second(s), 35 queries.© 2003-2025 cbk Team.