我想知道是否有人知道iSimulate如何自动注册/挂钩到调试的iDevice应用程序中?它就像包含静态库(和几个框架)一样简单,它只是起作用。没有方法或功能可以调用。这怎么可能?
答案 0 :(得分:1)
简短回答:在Objective-C中使用类别,您可以扩展或扩充系统中的任何类,包括核心类和NSObject本身。 (类似于Ruby中的“猴子修补”。)
实际的通信很可能是广播,发送不希望得到回复的包。当您启动应用程序时,它就会开始拦截这些程序包。所以这是模拟器应用程序挂钩到iSimulate流,而不是iSimulate以某种方式“进入”您的应用程序。
查看开源accelerometer simulator项目。您也可以轻松地将其扩展到广播触摸,并且基本上复制了iSimulate的功能。而且你了解了Objective-C的漂亮方面。