Message not found [UIApplication application:didFinishLaunchingWithOptions:]

我想对UIApplication进行拦截 增加一些全局的视图。但是会出现: message not found [UIApplication application:didFinishLaunchingWithOptions:]

我的调用时这样的:

首先进行声明:
MSHookMessageEx([UIApplication class], @selector(application:didFinishLaunchingWithOptions:), (IMP)new_UIApplicationDelegate, (IMP*)&old_UIApplicationDelegate);

然后新建的逻辑如下:


这是我将 原来的OC进行更改的。原OC方法是这样的:

不知道什么原因替换后说找不到这个方法,请问我哪里写错了吗?

我应该是 表达不清楚,我重新说下我遇到的问题。我替换OC的方法:


但是我不知道如何使用MSHookFunctionEx去hook原方法。 因此我将其进行转化为如下:

但是发现不成功。跑的时候报 Message not found [UIApplication application:didFinishLaunchingWithOptions:]错误。

希望知道的朋友指点下 这种HOOK OC的方法应该怎么写。一点头绪都没有。

为什么不直接用logos呢?

也是啊。SB了

但是还是挺纠结的用这种方式应该怎么写呢。snakeinny大神。 一直膜拜你呢

不是logos的写法。是MSHookFunctionEx

直接写MSHookFunctionEx的话我也不会,还得现看教程现学。但没这个必要啊,有更简单的做法为什么不用呢

https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1622921-application?language=objc

我想他没有的原因是, 这方法是 UIApplicationDelegate 的

确实 是我写的疏忽 ,已经解决了 是我传参不一致导致的。