美文网首页
iOS 实时更新屏幕插件

iOS 实时更新屏幕插件

作者: 微笑城ios | 来源:发表于2020-01-23 19:33 被阅读0次

InjectionIII 开发神器终于等到你了

一直比较喜欢 Android 开发搭建界面真的是快啊, 羡慕不来慢慢的也就习惯了 , 直到遇到了 神器 InjectionIII

快速入门

  1. InjectionIII安装非常简单,只需要在app store中搜索InjectionIII即可下载
  2. 打开 InjectionIII , 选中-> Open Project -> 打开你要的项目
    屏幕快照 2020-01-23 下午7.04.06.png
  3. 在项目application 中插入


    屏幕快照 2020-01-23 下午7.20.48.png
 #if DEBUG
        [[NSBundle bundleWithPath:@"/Applications/InjectionIII.app/Contents/Resources/iOSInjection.bundle"] load];
    #endif
  1. 在基类 ViewController 里面 添加代码
+ (void)load {
#if DEBUG
    //注册项目启动监听
    __block id observer =
    [[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationDidFinishLaunchingNotification object:nil queue:nil usingBlock:^(NSNotification * _Nonnull note) {
        //bundlePath
        [[NSBundle bundleWithPath:@"/Applications/InjectionIII.app/Contents/Resources/iOSInjection.bundle"] load];
        [[NSNotificationCenter defaultCenter] removeObserver:observer];
    }];
    class_addMethod([NSObject class], NSSelectorFromString(@"injected"), (IMP)injected, "v@:");
#endif
}

/**
 InjectionIII 热部署会调用的一个方法,
 runtime给VC绑定上之后,每次部署完就重新viewDidLoad
 */
void injected (id self, SEL _cmd) {
    //vc 刷新
    if ([self isKindOfClass:[UIViewController class]]) {
        [self loadView];
        [self viewDidLoad];
        [self viewWillLayoutSubviews];
        [self viewWillAppear:NO];
    }
    //view 刷新
    else if ([self isKindOfClass:[UIView class]]){
        UIViewController *vc = self;
        if (vc && [vc isKindOfClass:[UIViewController class]]) {
            [vc loadView];
            [vc viewDidLoad];
            [vc viewWillLayoutSubviews];
            [vc viewWillAppear:NO];
        }
    }
}
  1. 启动项目 看到这个你就成功了 (当然如果没有 检查一下配置, 重启一下电脑 基本能解决问题)
    [图片上传中...(WeChat7497cc58d40fea59c05d8f783bdb2832.png-f891cf-1579779107708-0)]

好了, 修改代码 comd + s 去爽吧

相关文章

网友评论

      本文标题:iOS 实时更新屏幕插件

      本文链接:https://www.haomeiwen.com/subject/bsinzctx.html