什么是InjectionIII
InjectionIII是John Holdsworth开发的一款可以动态的将Swift或者Objective-C代码在已运行的程序中执行的工具,可以不用重新运行程序,加快调试速度。这款工具可以在Mac AppStore免费下载,如下所示:

同时作者也将该软件开源了,源代码地址
使用方法
1.从Mac AppStore下载完成后,打开软件,在电脑右上方任务栏会出现针孔的图标,点击Open Project,或者Open Recent,选择工程文件的根文件夹,再点击File Watcher至选中状态。

2.打开Xcode工程,在Appdelegate.m文件didFinishLaunchingWithOptions方法里添加如下代码
#if DEBUG
// iOS
[[NSBundle bundleWithPath:@"/Applications/InjectionIII.app/Contents/Resources/iOSInjection.bundle"] load];
// tvOS
//[[NSBundle bundleWithPath:@"/Applications/InjectionIII.app/Contents/Resources/tvOSInjection.bundle"] load];
// macOS
//[[NSBundle bundleWithPath:@"/Applications/InjectionIII.app/Contents/Resources/macOSInjection.bundle"] load];
#endif
#if DEBUG
Bundle(path: "/Applications/InjectionIII.app/Contents/Resources/iOSInjection.bundle")?.load()
//for tvOS:
Bundle(path: "/Applications/InjectionIII.app/Contents/Resources/tvOSInjection.bundle")?.load()
//Or for macOS:
Bundle(path: "/Applications/InjectionIII.app/Contents/Resources/macOSInjection.bundle")?.load()
#endif
3.在你编辑的ViewController中添加如下方法
- (void)injected {
}
在该方法中添加你想要更改的代码,按Command + S运行。
注意
1.重新运行不会调用
injected方法,因为该方法并未被实际调用2.只能在模拟器中使用