Swift:print()命令在Xcode 7.3.1中无法打印到控制台

7

我正在使用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")

我正在努力让这个部分运作起来。我想知道默认设置是否被正确地保存/加载。当我在模拟器中运行应用程序时,视图加载并呈现场景(屏幕上弹出一些图像),所以我知道代码至少正在运行。然而,控制台上什么也没有显示。怎么回事?如果此问题曾被询问过,我很抱歉,但是我找不到相关资源。谢谢您的时间。


你确定你打开了显示打印语句的视图吗? - chickenparm
添加一个断点以确保您实际到达打印代码行。 - JAL
断点确实帮助我找出了问题,谢谢! - ifiore
2个回答

12

您需要设置/添加断点,因为有时在其他文件中的方法(例如带有递归块或连线的方法)可能会抢占打印语句的调用。如果您在设置断点之后看到打印语句,则知道调用打印语句的某些内容被抢占了。

添加、禁用和删除断点

此外,这可能听起来很明显,所以不要怪我,但许多人错误地禁用了控制台视图。shift+command+C显示控制台视图。

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


是的,一旦我开始使用断点,我就设法让它正常工作了。非常感谢!我有点困惑断点究竟是如何解决问题的,但我仍然很感激。再次感谢! - ifiore
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Edison
哎呀,是啊。控制台被隐藏了。我打开了变量视图但没打开控制台。唉。谢谢!接着干吧。 - Sam

1

最近我遇到了这个问题。

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接