如何在Xcode中以编程方式清除控制台?

时间:2011-01-04 14:58:12

标签: iphone objective-c xcode debugging

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

8 个答案:

答案 0 :(得分:63)

在控制台(调试模式)下使用

Command + k 

清除控制台。

答案 1 :(得分:20)

我认为你唯一能做的就是

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

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

答案 2 :(得分:10)

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

答案 3 :(得分:7)

也许您可以使用XCode首选项中的“自动清除调试控制台”设置。 不知道这是否能回答你的问题?

答案 4 :(得分:3)

调试器控制台/运行日志基本上是从您的应用程序重定向“将此日志记录到控制台”命令。 “清除”在一般意义上它意味着什么,因为消息通常只是在某处(如文件)分流。您的应用程序必须知道其调试环境,并能够告诉该环境清除它登录的内容。

简而言之:我认为这不是不可能,但这是非常不方便的。

答案 5 :(得分:1)

正如堆栈器所提到的,XCode首选项中的“自动清除调试控制台”设置将执行此操作。要在代码中执行此操作:

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;
}

答案 6 :(得分:1)

我浏览了所有答案,还有一些替代方案,但我认为最终答案是:您不能(截至 2021 年 6 月)。

我使用的唯一替代方法是:添加断点。当执行到达断点时,单击 Ctr-K。恢复执行。

答案 7 :(得分:-5)

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