7得票2回答
Objective-C中方法混淆的正确方式

我目前正在尝试使用Objective-C中的方法swizzling,但是我有一个问题。我试图理解正确的方法交换方式,并在在线研究后,我偶然发现了这篇NSHipster文章:http://nshipster.com/method-swizzling/ 在这篇文章中,作者提供了一些方法交换的示例...

11得票1回答
方法混淆和isa混淆是相同的吗?

方法交换和isa交换是一回事吗?如果不是,那么isa交换是什么?

15得票1回答
iOS - Firebase Cloud Messaging的方法交换技术

我正在使用 Firebase Cloud Messaging 进行推送通知的应用程序开发。在阅读其文档后,我对“禁用 swizzling”有点困惑。我尝试寻找一些教程来讲解它,但不幸的是没有任何教程。您能否帮我描述一下什么是“swizzling”,以及我们需要在哪些情况下使用它? 非常感谢。...

19得票3回答
对单个实例进行Swizzling,而不是对整个类进行。

我在NSObject上有一个类别,它应该做一些事情。 当我在对象上调用它时,我想重写其dealloc方法以进行一些清理。 我想使用方法交换来实现它,但是我无法弄清楚如何做到这一点。 我发现的唯一示例是如何替换整个类的方法实现(在我的情况下,它将覆盖所有NSObjects的dealloc - ...

20得票8回答
Swift函数混淆/运行时

在Swift之前,我会使用<objc/runtime.h>在Objective-C类中进行拦截或挂钩方法。 如果有人对修改Swift运行时和挂接函数的主题拥有像CydiaSubstrate和其他帮助过这个领域的库方面的信息,请告诉我。

7得票3回答
如何在使用分类重写方法时调用原始实现?

我试图弄清楚事物的真正运作方式。因此,我认为当我使用分类覆盖某些方法时,会得到有趣的NSLog。 @implementation UIView(Learning) - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event { ...

9得票2回答
如何实现方法交换?

我正在尝试使用SIMBL修改一个程序(我没有它的源代码)。我使用了类转储并发现我需要覆盖一个实例方法。 这个方法在名为controller的类中。我只需要获取参数arg1,就完成了任务。也许可以NSLog它或发布通知......我读到过关于objective-c中方法交换的文章,但我该怎么使...

8得票2回答
Firebase云消息推送在iOS上未显示打开和分析

我正在使用FCM向iOS应用程序发送通知。设备可以成功接收到通知,但我无法在通知控制台GUI中获取“已打开”或“转化”率。对于发送的近200万条通知,它始终显示“0个已打开”和“0个转化”。 我仔细检查了所有实现,但仍无法使其正常工作。 我在plist中将FirebaseAppDelega...

18得票3回答
现在Swift已经弃用了initialize(),在macOS中有替代方法吗?

Objective-C声明了一个类函数initialize(),它在每个类被使用之前运行一次。它经常被用作交换方法实现(方法混淆)等操作的入口点。它在Swift 3.1中已被弃用。 这是我以前做的事情: extension NSView { public override clas...

25得票2回答
App Store - Method Swizzling 的合法性

有关方法替换在App Store上是否合法的最新信息是什么? 我能找到的唯一数据点是一段时间以前Three20框架的调整,其始于以下通知: 您的应用程序xxx目前已发布到App Store,正在使用method_exchangeImplementations来交换Apple提供的AP...