cocoa之高级开发RunTime高级API

cocoa之高级开发RunTime高级API,第1张

概述系统类的方法实现部分替换 Method m1 = class_getInstanceMethod([NSStringclass],@selector(lowercaseString));Method m2 = class_getInstanceMethod([NSStringclass],@selector(uppercaseString));method_exchangeImplementa 系统类的方法实现部分替换
Method m1 = class_getInstanceMethod([Nsstringclass],@selector(lowercaseString));Method m2 = class_getInstanceMethod([Nsstringclass],@selector(uppercaseString));method_exchangeImplementations(m1,m2);log List:  (lldb)po [@"assAAAAss" lowercaseString]ASSAAAASS(lldb) po [@"sssKAAAss" uppercaseString]ssskaaass
自定义类的方法实现部分替换

在这里要说到一个黑马的典型死循环(人称自己++自己)

(voID)vIEwDIDLoad {[selfmethodSetImplementation];[self test];} -(voID)test{ [self test];}

如何在不改变源码的基础上干掉死循环

- (voID) methodSetImplementation { Method method = class_getInstanceMethod([VIEwController class],@selector(justLog1)); IMP originalimp = method_getImplementation(method); Method m1 = class_getInstanceMethod([VIEwController class],@selector(test)); method_setImplementation(m1,originalImp); } - (voID) justLog1 { NSLog(@"justLog1");//完美实现实例方法替换 }
总结

以上是内存溢出为你收集整理的cocoa之高级开发RunTime高级API全部内容,希望文章能够帮你解决cocoa之高级开发RunTime高级API所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1051653.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存