iOS - Runtime method_exchangeImplementations源码

简介: Runtime源码下载

1. API


/** 
* Exchanges the implementations of two methods.
* 
* @param m1 Method to exchange with second method.
* @param m2 Method to exchange with first method.
* 
* @note This is an atomic version of the following:
*  \code 
*  IMP imp1 = method_getImplementation(m1);
*  IMP imp2 = method_getImplementation(m2);
*  method_setImplementation(m1, imp2);
*  method_setImplementation(m2, imp1);
*  \endcode
*/
OBJC_EXPORT void
method_exchangeImplementations(Method _Nonnull m1, Method _Nonnull m2) 
   OBJC_AVAILABLE(10.5, 2.0, 9.0, 1.0, 2.0);


2. 源码


void method_exchangeImplementations(Method m1, Method m2)
{
   if (!m1  ||  !m2) return;
   mutex_locker_t lock(runtimeLock);
   IMP imp1 = m1->imp(false);
   IMP imp2 = m2->imp(false);
   SEL sel1 = m1->name();
   SEL sel2 = m2->name();
   m1->setImp(imp2);
   m2->setImp(imp1);
   // RR/AWZ updates are slow because class is unknown
   // Cache updates are slow because class is unknown
   // fixme build list of classes whose Methods are known externally?
   flushCaches(nil, __func__, [sel1, sel2, imp1, imp2](Class c){
       return c->cache.shouldFlush(sel1, imp1) || c->cache.shouldFlush(sel2, imp2);
   });
   adjustCustomFlagsForMethodChange(nil, m1);
   adjustCustomFlagsForMethodChange(nil, m2);


相关文章
|
4月前
|
移动开发 前端开发 数据安全/隐私保护
【工具】iOS代码混淆工具-iOS源码混淆
【工具】iOS代码混淆工具-iOS源码混淆
61 1
|
4月前
|
移动开发 前端开发 安全
最强大的 iOS 应用源码保护工具:Ipa Guard,保护你的商业机密代码
最强大的 iOS 应用源码保护工具:Ipa Guard,保护你的商业机密代码
|
11月前
|
API iOS开发
iOS面试关于runtime
iOS面试关于runtime
92 0
|
12月前
|
移动开发 安全 前端开发
最强大的iOS应用源码保护工具:Ipa Guard,保护你的商业机密代码
iOS加固保护是直接针对ios ipa二进制文件的保护技术,可以对iOS APP中的可执行文件进行深度混淆、加密。使用任何工具都无法逆向、破解还原源文件。对APP进行完整性保护,防止应用程序中的代码及资源文件被恶意篡改。Ipa Guard通过修改 ipa 文件中的 macho 文件中二进制数据(代码模块配置)进行操作,无需源码。不限定开发技术平台。支持oc,swift,cocos2d-x、unity3d、quick-cocos,html5 ,react native等等各种开发技术。Ipa Guard主要包含代码混淆全面、资源文件处理、不需要源代码更安全、调试信息清理、即时测试运行。
|
监控 Android开发 iOS开发
盘点一对一直播源码iOS系统维持平台稳定功能(一):弹性扩缩容
参考代码:弹性扩缩容如何实现?System.out.println("扩容:增加直播平台实例"); currentCapacity++; } private void scaleDown() { System.out.println("缩容:减少直播平台实例");
盘点一对一直播源码iOS系统维持平台稳定功能(一):弹性扩缩容
|
3月前
|
Linux 数据库 iOS开发
超级签名源码/超级签/ios分发/签名端本地linux服务器完成签名
该系统完全在linux下运行,不存在使用第三方收费工具,市面上很多系统都是使用的是第三方收费系统,例如:某心签名工具,某测侠等,不开源而且需要每年交费,这种系统只是在这些工具的基础上套了一层壳。请需要系统的放大你们的眼睛。
35 0
|
存储 视频直播 iOS开发
山东布谷科技iOS端实现直播app源码秒开技术(二):缓冲功能
缓冲功能对直播app源码平台用户有着提升观看短视频、直播体验的作用;对直播app源码平台有着提升直播质量,增加观众黏性的好处。因此,直播平台应当重视并充分发挥缓冲功能的潜力,为用户继续打造更好的直播观看体验。
山东布谷科技iOS端实现直播app源码秒开技术(二):缓冲功能
|
监控 安全 Android开发
直播软件APP源码iOS提交到APP store系列之上架指南
以上说明就是我为大家整理的直播软件APP平台iOS上架的相关知识,希望对大家有帮助。但是,上架只是一个开始,开发者还需要不断改进和优化应用,提供更好的用户体验和服务
直播软件APP源码iOS提交到APP store系列之上架指南
15-iOS之Runtime常用API以及使用
15-iOS之Runtime常用API以及使用
79 0
|
API 开发工具 iOS开发
一点就通,社交源码IOS客户端开发集成SDK
所谓SDK,全称是SoftwaredevelopmentKit,翻译成软件开发工具包。SDK用助开发某种软件,今天给大家简单讲解下如何在社交源码IOS客户端上开发集成 SDK。