打印在 Swift 3 个扩展中不起作用

print not working in Swift 3 extensions

我是 Swift 3 的新手,我尝试在 Widget 扩展中制作一个 print("Test")

我在 ViewController.swift 中尝试了相同的代码,它工作正常。我不知道为什么它在那里工作,但它在 TodayViewController.swift 上不工作。我也无法访问 objects

func loadData() {
    let query = PFQuery(className: "Noticias")
    query.whereKey("titulo", equalTo:"Es Navidad")
    query.findObjectsInBackground(block: { (objects : [PFObject]?, error: Error?) -> Void in
        if error == nil {
            // The find succeeded.
            print("Successfully retrieved \(objects!.count) scores.")

            // Do something with the found objects
            if let objects = objects {
                for object in objects {
                    print(object.objectId!)
                }
            }
        } else {
            // Log details of the failure
            print("bad day homie")
            print(error!)
        }
    })
}

我附上我的照片看清楚。如果我尝试在标记为工作的文件上打印,它就可以工作。但是如果我在标有 ad NO 的文件上尝试它,它不会。

从扩展程序中检索打印消息非常困难。问题是它是一个扩展!它不在您的应用程序中 运行ning,因此它不会到达您的控制台。 有时我发现你可以通过在调试区顶部的调试栏中切换调试进程来解决这个问题(在屏幕底部,你的屏幕截图中没有显示),但在其他时候这不起作用。

我将说明一种似乎非常可靠的可能技术。看看这个屏幕截图:

"Expand" 是动作扩展。但是我的包含应用程序称为 "bk2ch13..."。那么我将如何设法在右侧显示的断点处暂停,该断点位于操作扩展中?这就是我所做的。

  1. 首先,在如上所示的屏幕上,我构建并 运行 我的包含应用程序。

  2. 然后,我将目标切换到动作扩展:

  1. 现在我再次构建 运行 。但是现在我正在尝试 运行 一个你不能做的动作扩展,所以 Xcode 问我 运行:
  2. 有什么应用

所以我选择"bk2ch13..."。所以现在我们再次 运行ning 我的主机应用程序,但我们正在调试扩展程序。所以我使用我的主机应用程序来执行扩展,果然,我们在断点处暂停并且 print 语句到达控制台

请注意,在该屏幕截图中,调试栏如何清楚地显示我们正在与扩展而不是主机应用对话。