Xcode Playground 时间轴为空

Posted

技术标签:

【中文标题】Xcode Playground 时间轴为空【英文标题】:Xcode Playground Timeline empty 【发布时间】:2016-08-14 09:26:32 【问题描述】:

我正在尝试在 xcode 版本 7.3.1 中使用时间线助手编辑器,它总是为空的。 Timeline assistant editor

我认为错误来自 xcode,但是从搜索来看,似乎没有人遇到相同的错误,所以我很困惑。

【问题讨论】:

你能说得更具体点吗? 从 Xcode 8 和 Swift 3 开始,您需要导入 PlaygroundSupport 模块才能渲染到时间线。我在下面给出了关于如何实现这一点的更详细的帖子! How to print to console using swift playground?的可能重复 OP 在问题文本和屏幕截图之间存在一些混淆。从屏幕截图中可以清楚地看出,问题实际上是关于如何查看print 输出——这实际上与时间轴 UI 无关。这使得这个问题与How to print to console using swift playground? 重复 【参考方案1】:

要显示print 的结果,您需要通过菜单打开“调试区域”

查看 > 调试区 > 显示调试区

或者点击左下角的按钮:

要显示时间线图,您可以使用XCPCaptureValue

import XCPlayground

var x = 0
for i in 0...10 
    x += i
    print(x)
    XCPCaptureValue("Value for x", value: x)   

XCPCaptureValue 已被弃用,将来将不再可用(没有available replacement)。

另一种方法是通过单击右侧的“+”按钮以内联方式显示图形:

右键单击图表,您可以选择显示价值历史记录:

【讨论】:

在我导入 XCPlayground 并使用 XCPCaptureValue 函数后,时间线工作了。我在想这些图表是隐含在时间线上的。 糟糕,我忘了在我的回答中提到导入 XCPlayground,已编辑,谢谢。请注意,如果您升级到 Xcode 8,则必须导入“PlaygroundSupport”而不是“XCPlayground”。【参考方案2】:

我自己刚刚开始使用 Playgrounds,遇到了同样的问题,即无法打印到时间轴。

This Medium article 解释了如何在 Xcode 8 和 Swift 3 的时间轴中显示或渲染事物。基本上,您必须创建一个视图并将其分配给 PlaygroundPage.current.liveView:

import UIKit
import PlaygroundSupport 

let contentView = UIView(frame: CGRect(x: 0, y: 0, width: 320.0, height: 600.0))
contentView.backgroundColor = UIColor.white

PlaygroundPage.current.liveView = contentView

之后,您可以将任何内容添加到您的 contentView 以显示在时间轴中。 PlaygroundPage.current.liveView 可以接收任何 UIView,如 UILabel、UITextField 等。

但是,有时创建的视图默认为黑色背景,因此您必须记住将 .backgroundColor 设置为 UIColor.white 才能查看它的信息/子视图。

【讨论】:

当然,但这不是被问到的。不同的功能。

以上是关于Xcode Playground 时间轴为空的主要内容,如果未能解决你的问题,请参考以下文章

在 Swift 4 Playground 中使用外部库

将 iPad Playground 转换为 Xcode 10 Playground

Xcode-playground 的时间线:白色背景上的白色文本

Xcode 6 Beta / Swift - Playground 未更新

Xcode 8 Playground 不运行

Xcode & Playground 不显示结果窗口