【问题标题】:How to clear console programmatically in Xcode?如何在 Xcode 中以编程方式清除控制台?
【发布时间】:2011-06-03 10:58:29
【问题描述】:

我的代码中有一堆用于调试的 NSLog 语句。每次我运行我的项目时,我都想从一个新的控制台屏幕开始。我可以在我的代码中嵌入任何可以做到这一点的命令吗?

【问题讨论】:

    标签: iphone objective-c xcode debugging


    【解决方案1】:

    我查看了所有答案,并且有一些替代方案,但我认为最终答案是:你不能(截至 2021 年 6 月)。

    我使用的唯一选择是:添加断点。当执行到达断点时,单击 Ctr-K。继续执行。

    【讨论】:

      【解决方案2】:

      在控制台(调试模式)时,使用:

      Xcode > Debug > Debug Workflow > Clear Console
      

      键盘快捷键:Command ⌘+K

      【讨论】:

        【解决方案3】:

        也许您可以使用 Xcode 首选项中的“自动清除调试控制台”设置...

        不知道这是否回答了你的问题?

        【讨论】:

        • 亲爱的@NsExplorer,实际上这不是您想要的答案。 'Command + K' 实际上这是你想要的动作。我们如何使用代码(以编程方式)执行此操作?
        【解决方案4】:

        斯威夫特

        print("any value", terminator: Array(repeating: "\n", count: 100).joined())
        

        目标-C

        我认为你唯一能做的就是

        for(int i= 0; i < 100; i++) 
        NSLog(@" ");
        

        就像在旧的 MS-DOS 中一样 :)

        【讨论】:

        • 这个答案让我很开心! (即使很难我也不会使用它):)
        • 这并不会真正清除它,因为它会包含你所有的调试数据,因为你正在使用 NSLog。你应该改用puts(" ");
        • C 风格的 for 语句已在 Swift 3 中移除
        • 没有真正清除控制台...但是....好的....它可能会有所帮助...我不会在任何要提交的代码中使用它...。(比如添加a \n 以增加控制台读数的清晰度)这是类固醇的蛮力
        【解决方案5】:

        正如 stackr 所提到的,XCode Preferences 中的“Auto Clear Debug Console”设置将执行此操作。在代码中完成:

        bool ClearXCodeDebuggerConsole()
        {
            NSString *const scriptText = @"\
        tell application \"System Events\"\n\
        set currentapp to the name of the current application\n\
        end tell\n\
        tell application \"Xcode\" to activate\n\
        tell application \"System Events\"\n\
        keystroke \"r\" using {command down, control down, option down}\n\
        end tell\n\
        tell application currentapp to activate\n\
        return true";
        
            NSAppleScript *script = [[[NSAppleScript alloc] initWithSource:scriptText] autorelease];
            [scriptText release];
            NSDictionary *dictError = nil;
            NSAppleEventDescriptor *result = [script executeAndReturnError:&dictError];
        
            if (!result) return false;
            if ([result booleanValue] != YES) return false;
            return true;
        }
        

        【讨论】:

        • 这看起来就是我要找的东西,但 NSAppleScript 是 AppKit 的一部分。你知道iOS版本吗?
        【解决方案6】:

        command + control + options + R 清除xcode中的控制台

        【讨论】:

        • 这不会清除控制台,但会在您每次运行命令时添加一个空行,这可能会有所帮助。
        【解决方案7】:

        调试器控制台/运行日志基本上是来自您的应用程序的重定向“将其记录到控制台”命令。 “清除”在一般意义上没有任何意义,因为消息通常只是被分流到某个地方(如文件)。您的应用程序必须了解其调试环境,并能够告诉该环境清除它正在记录的任何内容。

        简而言之:我想这不是不可能,但它非常不方便。

        【讨论】:

        • 但是我们可以想象一个断点命令,它基本上要求控制台自行清除。 会很方便。
        • 我赞成断点命令的想法,它可以清除所有到该点,并且不会停止
        【解决方案8】:

        如果您在 Xcode 窗口中谈论控制台,“运行”菜单中有一个“清除控制台”选项。在“调试”首选项选项卡中还有一个“自动清除调试控制台”复选框。我指的是 Xcode 3.2.x

        【讨论】:

        • 嗯,你先在哪里... :-( :-)
        猜你喜欢
        • 2015-09-24
        • 1970-01-01
        • 2011-02-18
        • 1970-01-01
        • 2011-03-15
        • 1970-01-01
        • 1970-01-01
        • 2021-12-10
        相关资源
        最近更新 更多