【问题标题】:Swift: print() command not printing to console in Xcode 7.3.1Swift:print() 命令未在 Xcode 7.3.1 中打印到控制台
【发布时间】:2019-03-19 05:23:09
【问题描述】:

我目前正在为 Xcode 上的 iOs 制作我的第一个 Swift 项目。我当前的问题是,我的代码中的所有 print() 命令似乎实际上并未将文本打印到我的控制台窗口中。我已经在不同的地方查找了这个问题,但似乎找不到其他人有同样的问题,所以我假设我有某种语法错误,或者我对 swift/xcode 的理解是错误的。这是我的代码块:

override func viewDidLoad() {
    super.viewDidLoad()
    // Configure the view.
    let skView = view as! SKView
    skView.multipleTouchEnabled = false

    let defaults = NSUserDefaults.standardUserDefaults()
    defaults.setValue("white",forKey: "petColor")
    let bugcheck = defaults.stringForKey("petColor")
    print(bugcheck)
    print("hello yes this works")

    // Create and configure the scene.
    scene = GameScene(size: skView.bounds.size)
    scene.scaleMode = .AspectFill

    // Present the scene.
    skView.presentScene(scene)
    }

这是在创建新项目时默认生成的 GameViewController.swift 文件中。行:

    let defaults = NSUserDefaults.standardUserDefaults()
    defaults.setValue("white",forKey: "petColor")
    let bugcheck = defaults.stringForKey("petColor")
    print(bugcheck)
    print("hello yes this works")

是我要开始工作的部分。我想知道默认值正在正确保存/加载。当我在模拟器中运行应用程序时,视图会加载,并呈现场景(屏幕上会弹出一些图像),所以我知道代码至少正在运行。但是,控制台上没有任何显示。是什么赋予了?抱歉,如果之前有人问过这个问题,但就像我说的那样,我找不到资源。感谢您的宝贵时间。

【问题讨论】:

  • 您确定打开了显示打印报表的视图吗?
  • 添加断点以确保您实际上到达了打印的代码行。
  • 断点确实帮助我解决了问题,谢谢!

标签: ios swift xcode


【解决方案1】:

您需要设置/添加断点,因为有时其他文件中的方法(例如使用递归块或 segues)可能会抢占打印行的调用。如果您在设置断点后看到您的打印语句,那么您就知道被调用的东西正在抢占打印语句的调用。

Adding, Disabling, and Deleting Breakpoints

另外,这听起来很明显,所以不要开枪,但很多人错误地禁用了控制台视图。 shift+command+C 显示控制台 查看。

此外,您还可以使用nslog 打印到设备日志,看看是否有所不同。 nslog 添加时间戳等。NSLog("Can anyone hear me?") 然后转到 Xcode -> Window -> Devices 并检查设备日志。您还可以检查 OS X 控制台应用程序是否有相同的日志。

【讨论】:

  • 是的,一旦我开始处理断点,我就设法让它工作。非常感谢!对于断点究竟是如何解决问题的,我有点困惑,但我仍然很感激。再次感谢!
  • 断点只允许您在设置断点的任何点停止程序。他们并没有真正解决任何问题。如果您看到您的 print 语句,这意味着您在断点处停止了程序,在该断点处 print 语句有机会在另一个函数或方法抢占 print 语句之前打印。那么你现在必须找出是什么代码抢占了你的打印行。如果你真的有兴趣找出答案。
  • 天啊。是的。控制台被隐藏。打开了变量视图,但没有打开控制台。啊。谢谢你。继续前进。
【解决方案2】:

这个问题最近发生在我身上。

问题是我使用 Duet 应用程序将我的 iPad 连接为扩展显示器。目前此连接是通过 Air Play 执行的,由于某些奇怪的原因,Xcode 中的日志消失了。

希望这对其他人有所帮助。

【讨论】:

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