【问题标题】:Swift not printing to console with print() command, other code works fineSwift 不使用 print() 命令打印到控制台,其他代码工作正常
【发布时间】:2017-06-18 21:24:44
【问题描述】:

我正在使用XCode Version 9.0 beta (9M136h) 编写一个带有watchkit 扩展的应用程序。我可以让应用程序与手表应用程序通信并使用WatchConnectivity Framework 来回发送信息。我还有应用程序利用AlamoFire 框架与服务器通信。

我的所有函数都被调用和执行,但是,我似乎无法让print() 将任何内容记录到控制台!我尝试在应用程序的不同区域放置各种 print() 命令,但它们都没有向控制台生成任何东西,即使它们周围的代码正在运行。

我 100% 确定我正在查看 XCode 的正确区域,我已经转到 View->Debug Area->Activate Console 并且我还确保选择了 All output。我什至尝试添加OS_ACTIVITY_MODE,其值为disabled,但这似乎也没有任何作用。

这是我在ViewController.swift 文件中如何使用它的示例:

override func viewDidLoad()
{
    super.viewDidLoad()
    print("view did load")
    initWCSession()
    print("Attorney General Jeff Sessions")
}

此代码运行并调用initWCSession() 函数,但我在任何地方都看不到"view did load""Attorney General Jeff Sessions" 的任何输出!

这是 XCode 中的错误吗?有什么我忘记了吗? (我是 XCode 的新手)。

【问题讨论】:

  • 清除控制台输出的过滤器。
  • @OrkhanAlikhanov,我检查了过滤器,没有过滤器:/
  • 试试 NSLog("test")。在 Xcode -> Window -> Devices 查看设备日志。
  • @OrkhanAlikhanov,那也没用:/
  • 可能方案中的“选项”已更改?我说的是这个:evernote.com/l/AOzBPBAfsTRPOLQ9Md2L6eQWfKoSpKFbLB8

标签: swift xcode xcode9


【解决方案1】:

试试 view.backgroundColor = .red

我认为没有调用视图控制器。只是一个猜测。否则打印应该工作。

【讨论】:

  • 我试过这段代码,当应用程序启动时,视图的背景是红色的,但我仍然看不到控制台的任何输出。我在第一个 print() 之后直接添加了那行代码
【解决方案2】:

我不确定为什么会这样,但我进入Edit Scheme 并选中了用于记录 malloc 的复选框。我保存了这些设置,然后返回Edit Scheme 并取消选中这些框并保存。

在那之后,我开始看到 print() 语句记录到控制台!

一定是这个版本的 XCode 中的错误。

【讨论】:

    【解决方案3】:

    在最近的 Xcode 11.3.1 中,我从 CocoaLumberjack 获得了日志行,但从我的 print 调用中却没有。重启 Xcode 解决了这个问题。

    【讨论】:

      猜你喜欢
      • 2015-04-04
      • 2016-04-18
      • 1970-01-01
      • 1970-01-01
      • 2022-08-21
      • 2021-08-01
      • 2014-02-22
      • 2016-07-12
      相关资源
      最近更新 更多