搜索
您的当前位置:首页正文

Objective-C与Swift如何使用Reveal

来源:二三娱乐

目的

整合Objective-C与Swift写的项目同时支持Reveal调试,本文推荐的调试方法不污染项目,不仅适用于个人开发,也适用于团队开发。

简介

Reveal调试工具使用步骤:

  • 在用户根目录创建.lldbinit文件,打开终端命令输入以下内容
$ cd ~
$ touch .lldbinit
  • 使用vim编辑器编辑.lldbinit文件
$ vim .lldbinit
$ i
  • 拷贝以下内容到.lldbinit文件中
command alias swift_reveal_load_sim expr dlopen("/Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib", 2)
command alias swift_reveal_load_dev expr dlopen(NSBundle.mainBundle().pathForResource("libReveal", ofType: "dylib")!, 2)
command alias swift_reveal_start expr NSNotificationCenter.defaultCenter().postNotificationName("IBARevealRequestStart", object: nil)
command alias swift_reveal_stop expr NSNotificationCenter.defaultCenter().postNotificationName("IBARevealRequestStop", object: nil)
command alias objc_reveal_load_sim expr (void*)dlopen("/Applications/Reveal.app/Contents/SharedSupport/iOS-Libraries/libReveal.dylib", 0x2);
command alias objc_reveal_load_dev expr (void*)dlopen([(NSString*)[(NSBundle*)[NSBundle mainBundle] pathForResource:@"libReveal" ofType:@"dylib"] cStringUsingEncoding:0x4], 0x2);
command alias objc_reveal_start expr (void)[(NSNotificationCenter*)[NSNotificationCenter defaultCenter] postNotificationName:@"IBARevealRequestStart" object:nil];
command alias objc_reveal_stop expr (void)[(NSNotificationCenter*)[NSNotificationCenter defaultCenter] postNotificationName:@"IBARevealRequestStop" object:nil];
  • 打断点与编辑断点
    在AppDelegate类的 application: didFinishLaunchingWithOptions: 方法中,作如下3步操作(如下图所示):
    • 点击该方法左边的行号区域,增加一个断点,之后右击该断点,选择“Edit Breakpoint”。
    • 点击”Action”项边右的”Add Action”,注意:这里和唐巧的文章有点修改
      swift项目输入“swift_reveal_load_sim”
      OC项目输入“objc_reveal_load_sim”
    • 勾选上Options上的”Automatically continue after evaluating”选项。
  • 运行程序,启动Reveal即可
Top