如何从SIMBL插件中获取主应用程序中的单例?当我尝试调用[ProcessControl sharedInstance]
之类的东西时,我得到一个错误,即ProcessControl未定义(即使它在头文件中声明)。
答案 0 :(得分:1)
使用NSClassFromString
在运行时查找课程,然后照常发送sharedInstance
消息。
为NSClassFromString
准备好返回Nil
或让课程失败的消息。如果应用程序开发人员删除或重命名该类或其单例方法,则会发生任何一种情况。每当您为没有文档化的受支持插件API的应用程序编写插件时,您就会承担此风险。
如果与应用程序的类及其实例交互的所有代码看起来完全偏执,那么您的“插件”将是最强大的。