Injection
可以让代码在保存之后,立即看到修改后的效果,少去了重新编译运行的麻烦,对于一些交互复杂页面层级较多的情况,可以大大的提升开发效率,特别是项目大了之后,编译速度简直就是蜗牛在全速追乌龟一样,每次都要等好久,不知道的还以为我盯着屏幕发愣呢
安装
image.png
-
https://apps.apple.com/cn/app/injectioniii/id1380446739?mt=12
-
appStore 中 搜索 Injection( 类别>软件开发工具>免费排行>查看全部>列表中大概20-30之间)
使用
-
打开injection ,然后open Projice,然后选择你所要使用的工程目录,然后点击selectProjectDirectory 按钮(确保FileWatcher选中)
image.png
image.png
2.在didFinishLaunchingWithOptions加入下面代码
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//injection
#if DEBUG
[[NSBundle bundleWithPath:@"/Applications/InjectionIII.app/Contents/Resources/iOSInjection.bundle"] load];
#endif
return YES;
}
3.在需要修改或者添加的ViewController中,添加下面方法
-(void)injected{
NSLog(@"we can do UITest here");
/*
加入自己想要在当前页面实现或者修改的UI逻辑
*/
}
4.正常启动工程,如果一切正常,你会看到下面两个情况
a injection 图标颜色由蓝色变成橙色
image.png
image.png
b 控制台会打印
image.png
5.然后就是将你要修改的代码加入到-(void)injected{}方法中,command+s 即可将修改的内容实时显示在模拟器上(哦对了,目前只支持模拟器)
可以将某些修改单独写在方法里,确认了修改后再将代码移动到合理位置再command+r进行确认
也可以将ui绘制或者重绘的入口方法加入其中然后直接在远代码基础上进行修改,后续就不用动远代码逻辑
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
[self.view setBackgroundColor:[UIColor redColor]];
UIView *lineView = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 100, 3)];
[lineView setBackgroundColor:[UIColor yellowColor]];
[self.view addSubview:lineView];
}
-(void)injected{
NSLog(@">>>>>>>test");
//这里可以放 [self viewDidLoad] or [tableview reload]等
[self viewDidLoad];
}
6.后续再次使用,打开injection>open Recent,正常打开工程即可
test.gif













网友评论