【问题标题】:Find out where NSLogs are coming from?找出 NSLogs 来自哪里?
【发布时间】:2012-06-01 21:11:49
【问题描述】:

在我的应用中,我收到以下 3 个 NSLog:

AudioStreamBasicDescription:  2 ch,  44100 Hz, 'lpcm' (0x00000C2C) 8.24-bit little-endian signed integer, deinterleaved
2012-06-01 17:05:43.397 App[1579:707] authenticateWithCompletionHandler: enter
2012-06-01 17:05:43.399 App[1579:707] authenticateWithCompletionHandler: exit

但是,我确实知道这些 NSLog 来自哪里。有什么方法可以在不通过我项目中的每一堂课的情况下找出答案?

这些日志确实困扰着我,让我更难实际看到真正的控制台输出。

任何建议将不胜感激!

谢谢!

【问题讨论】:

  • 在项目范围内搜索 NSLog,如果你没有看到,那么它们可能是从 sdk 中生成的。
  • 如何进行项目范围的搜索?

标签: ios console nslog


【解决方案1】:

command + shift + f 在项目范围内搜索 NSLog 编写 NSLog 并回车

如果您找不到 nslog,则它们是从 SDK 中生成的

【讨论】:

    【解决方案2】:

    是的,在 Xcode 中转到左侧的小搜索栏(见图),然后搜索右侧的关键字。

    注意:我猜你在项目中导入了一些 Game Center 的东西,它们可能来自那里

    【讨论】:

    • 是的,它来自这一行:[localPlayer authenticateWithCompletionHandler:^(NSError *e) { No NSLogs 所以它似乎来自非常烦人的操作系统。
    【解决方案3】:

    您可以尝试搜索 "NSLog(@"authenticateWithCompletionHandler" 如果没有结果,那么正如 Omar 所说,它可能来自操作系统。

    【讨论】:

      【解决方案4】:

      你真的应该把你的 NSLogs 写得更详细。提供尽可能多的信息。您可能会考虑做的一件事是将所有 NSLog 语句替换为宏(即:MYLog),如下所示:

      #define MYLog(msg) NSLog(__FILE__ "(" __LINE__ "): " msg);
      

      然后,就像使用 NSLog 一样使用 MYLog。

      注意:您可能需要稍作更改,因为 Obj-C 使用 '@' 前缀字符串作为 NSStrings,而 NSLog 使用 NSString。我对预处理器不是很好,所以我不知道该怎么做,但我假设你会使用 '##' 预处理器运算符。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-01-21
        • 2011-04-06
        • 2010-09-21
        • 2014-04-24
        • 2015-07-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多