NSLog不打印到控制台

时间:2011-10-22 00:00:43

标签: nslog

我有一个我已经工作了几个月的Xcode项目。我从未遇到过NSLog的问题,但在升级到Xcode 4.2之后,没有任何东西会记录到控制台。我甚至尝试在viewDidLoad中抛出它:

    - (void)viewDidLoad
{
    [super viewDidLoad];

    NSLog(@"Can anyone hear me?");

没什么。是否有其他人遇到此问题或知道解决方案?

7 个答案:

答案 0 :(得分:77)

嗯,这很令人尴尬。控制台以某种方式被取消激活,我实际上正在观察变量窗口。按 Shift + + C 就可以了。

非常感谢罗伯特·金在这个问题上:

https://devforums.apple.com/message/565880#565880

答案 1 :(得分:56)

这是Xcode8 + iOS10的一个错误,我们可以用这种方式解决它:

模拟器上时,添加名称disable和值 变量OS_ACTIVITY_MODE并检查它(产品 - >方案 - >编辑方案 - >运行 - >参数 - >环境)。 enter image description here

设备上时,只需添加nullptr并进行检查(不要添加值)。您将在Xcode8控制台中看到NSLog。 enter image description here

答案 2 :(得分:9)

在iOS10中,控制台上会显示许多系统日志记录。可以通过在方案的运行参数中包含OS_ACTIVITY_MODE =禁用来禁用此功能

但是对于iOS10,NSLog消息将不再显示。 在较低的iOS版本中,仍会显示消息。因此,对于大多数测试用例,您可以使用较低的iOS版本。

否则你可以包含一个Swift函数来打印(打印函数)你的文本,这在iOS10中运行正常。

在iOS10.0.2和iOS9.3上测试

答案 3 :(得分:8)

我的问题是我选择了调试器输出。一旦我将其更改为所有输出目标输出,NSLogs就会显示正常。

如果这使您在调试区域的左侧感到困惑。

答案 4 :(得分:1)

我刚刚经历过这个,所以这是另一件需要检查的事情。

- >确保您没有在日志输出下方的过滤器字段中输入任何内容。所以,在我的情况下,我在记录器中搜索一个术语,忘了从Filter文本字段中删除搜索的术语。 DOH!

答案 5 :(得分:0)

我的问题是我不小心从App Delegate(委托 - 文件所有者)切断了引用插座。

答案 6 :(得分:0)

我有同样的问题。 诀窍是从项目中搜索并删除下面提到的行。

  #define NSLog(...)

搜索整个项目并将其删除。