NSLog 不打印到控制台

Posted

技术标签:

【中文标题】NSLog 不打印到控制台【英文标题】:NSLog not printing to console 【发布时间】:2011-10-22 00:00:42 【问题描述】:

我有一个工作了几个月的 Xcode 项目。我从来没有遇到过 NSLog 的问题,但是在升级到 Xcode 4.2 之后,什么都不会记录到控制台。我什至尝试在 viewDidLoad 中抛出这个:

    - (void)viewDidLoad

    [super viewDidLoad];

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

什么都没有。有其他人遇到这个问题或知道解决方案吗?

【问题讨论】:

检查这是否可以帮助你:***.com/a/34743750/1753005 【参考方案1】:

嗯,这很尴尬。控制台以某种方式被停用,我实际上正在观看变量窗口。按 Shift + + C 就可以了。

非常感谢 Robert King 在此线程上的工作:

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

【讨论】:

我有同样的东西,但不是在升级之后。我已经使用了一段时间了。我不知道它是怎么发生的……奇怪。另外,(如果这确实是一个错误)我想我应该注意我正在运行 Xcode 4.3.2 天哪。这也发生在我身上。我在这上面花了 2 天的时间,直到我在这里看到了“解决方案”。天哪。 我的控制台已打开,设置为显示所有输出,但我的 NSLogs 仍然没有显示。 @bugloaf 你修好了?我也面临同样的问题。 天哪!更新操作系统(XCOde 8.2.1)后现在发生谢谢!【参考方案2】:

这是Xcode8 + ios10的一个bug,我们可以这样解决:

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

设备上,只添加OS_ACTIVITY_MODE并勾选(不要添加Value)。您将在 Xcode8 控制台中看到 NSLog。

【讨论】:

【参考方案3】:

在 iOS10 中,很多系统日志都显示在控制台上。这可以通过在您的方案的运行参数中包含 OS_ACTIVITY_MODE = disabled 来禁用

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

否则,您可以包含一个打印(打印功能)您的文本的 Swift 函数,这在 iOS10 中可以正常工作。

在 iOS10.0.2 和 iOS9.3 上测试

【讨论】:

这是对我有用的解决方案。这是已报告的错误吗? 我相信是这样,因为 Apple 已经在新的 Beta 版中修复了这个问题。【参考方案4】:

我的问题是我选择了 Debugger Output。一旦我将其更改为 All outputtarget output NSLogs 就会显示正常。

如果这让您感到困惑,它位于调试区域的左侧。

【讨论】:

Dayum ...你知道这让我困惑了多久吗?我一辈子都想不通为什么我看不到这个输出。【参考方案5】:

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

  #define NSLog(...)

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

【讨论】:

【参考方案6】:

我刚刚经历过这种情况,所以还有一件事要检查。

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

【讨论】:

【参考方案7】:

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

【讨论】:

以上是关于NSLog 不打印到控制台的主要内容,如果未能解决你的问题,请参考以下文章

有啥方法可以用 NSLog 进行彩色打印?

自定义的打印语句NSLog在控制台输出不完整的完美解决

将实例 ID 打印到 NSLog?

打印一个 NSString

NSLog 可以打印的最大尺寸

来自 C 代码的 NSLog 样式调试消息