在您的Swift应用中运行时内省和修改类

介绍ObjectiveKit

还记得2016年5月的重大动态辩论吗? 如果没有,请快速阅读以下内容:

动态迅捷
布伦特·西蒙斯(Brent Simmons)(如果有不清楚的话,请参见存档):在最近和将来的文章中,我正在记录问题…… mjtsai.com

简而言之,争论是开发人员目前正在利用ObjC运行时的动态功能解决许多类型的问题。 当我们(可能)朝着Swift完全取代Objective C的未来迈进时,Swift将需要提供自己的本机动态解决方案。

在iOS和macOS上,至少在可预见的将来,Swift将在Objective C运行时之上运行,这意味着我们可以完全访问这些功能。 可悲的是,在Swift中使用它们确实很痛苦。 我们可以做得更好……

你好ObjectiveKit

ObjectiveKit是用于访问Objective C运行时函数的新Swift框架。

它使自省,修改方法和在运行时创建类之类的事情变得非常容易,以一种对Swift来说尽可能原生的方式进行。

它是如何工作的? 您需要做的就是初始化一个ObjectiveClass对象,该对象的类型是您要内省/修改的类,然后使用ObjectiveKit的众多功能之一。 这是一个简单的示例:

使用Objective C运行时既有趣,有教育意义,又对调试非常有用。 但是,这也很危险-在生产中使用前请格外小心。

检查一下:

github.com/marmelroy/ObjectiveKit