如何调试 Swift PlaygroundBook?

2023-11-29

当我探索 Playground Book 示例代码时,例如this one,我发现运行代码非常乏味,因为 Playground Book 对代码运行位置的限制:只能在 iPad 的 Swift Playground 上运行。

无法在 iOS 的 Swift Playground 中调试“源”/辅助代码,因为所有源文件都以不可编辑的纯文本显示。您必须在 Xcode 中打开源文件才能对其进行编辑,但随后您将无法编译或运行它们!

这对于上面的示例代码来说尤其乏味,它使用PlaygroundValue,一个需要 Playground Book 格式的持久性 API,因此我仍然无法通过将所有源代码分离到单独的 Playground 文件中以在 Mac 上运行来运行代码。

由于上面的示例代码已经过时,我发现几乎不可能正确调试它并使代码运行。你必须:

  • 在 iPad 上部署代码。运行这本书。
  • 在 iPad 上看到许多错误消息。
  • 返回 Mac 上的 Xcode 并手动一一调试它们。
  • 再次将代码部署到iPad上运行。重复该过程。
  • 即使解决了所有错误后,您仍然可能面临神秘的“Problem Running Playground”,而没有任何进一步的具体解释。

enter image description here enter image description here

使用 Playground Book 高效调试和部署代码的工作流程是什么?当前工作流程对我来说似乎不切实际,我认为必须有更好的方法,但我对 Playground Book 不够熟悉,而且我的在线研究没有产生任何合理的解决方法。


从我发送给 Apple 的错误报告/建议中,我得到了以下回复:

实际上,我们已经构建了工具来帮助调试辅助源,并且我们在 WWDC 2018 上做了一个演示来演示它。请在此处查看演示文稿并访问工具:https://developer.apple.com/videos/play/wwdc2018/413/

经过进一步研究,我发现他们最近发布了一个游乐场作者模板:

Swift Playgrounds 作者模板是一个入门 Xcode 项目,可帮助您创建、调试和生成 Playground 书籍。使用该模板,您可以像应用程序一样逐步执行实时视图的代码,以便您可以更轻松地识别错误并开发用于开发 Playground 图书的高效工作流程。

该模板需要 Swift 4.1 才能运行,包含三个不同的目标:

  • 游乐场书
  • 书籍来源
  • LiveView测试应用程序

enter image description here

您可以使用LiveViewTestApp使用 Xcode 在 Mac 上完全调试 Playground Book。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何调试 Swift PlaygroundBook? 的相关文章

随机推荐

  • 如何将图像从 Java Applet 发送到 JavaScript?

    我有一个正在生成图像的 Java Applet 最终 我想将图像数据插入数据库 因此我想将图像数据临时存储在包含小程序的页面上的表单字段中 我希望做到这一点而不在客户端计算机上存储图像文件 这一切都来自签名板 以下是一些应该从 sigObj
  • 如何使用 toJSON 更改序列化实体的属性名称?

    我想序列化一个属性 其名称与实体中的名称不同 Entity export class MyEntity This should be serialized with name column in JSON Column name strin
  • 如何更改列的堆叠顺序?

    使用 Bootstrap 3 我有一个非常简单的布局 例如 div class container div class row div class col sm 4 Header Content Left div div class col
  • 如何在CSS中使用边框的clip-path属性

    I have clip part达到 偷工减料 的效果 我想将背景更改为白色并使用绿色边框 问题是 当我将背景更改为白色时 角落是空的 如何在悬停时制作绿色边框角 test background red width 100px height
  • PHP 上次登录脚本[关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我想知道一种好的 有效的方法来判断我的用户上次登录是多久前的事 在用户个人资料中 我希望
  • php通过socket编程传递c结构体数据

    如何制作一个需要对具有以下结构的linux C套接字服务器执行socket sendto的php套接字客户端 typedef struct UI2 todo char rz LNG RZ 1 char saId LNG SAT ID 1 c
  • 需要复杂数据排序 SQL Server 的帮助

    我需要对数据库中的复杂数据进行排序的帮助 假设我的数据存储在这样的表中 Description JCB Excavator ECU P N 728 35700 Geo Prism 1995 GEO ABS 16213899 GEO pump
  • toLocaleDateString 的相反方法

    为了创建一个尊重浏览器文化的字符串 我们可以这样做 var myDate new Date var myDateString myDate toLocaleDateString myDate returns a string 这很好 因为如
  • JQuery AJAX 从表单发送文件数组

    我在某个地方找到了这段代码 可以在不刷新浏览器的情况下上传图片 然而 我不喜欢上传器文件 所以我决定使用我以前使用过的旧文件 问题在于它正在发送一个数组而不是来自 javascript 文件的字符串 它的目的是发送多个文件而不是仅发送一个文
  • Firefox、SVG、文本装饰

    考虑以下代码片段
  • java中变音符号的问题[重复]

    这个问题在这里已经有答案了 我正在尝试通过控制台读取一些数据并将其写入文件 当控制台中的数据包含元音变音字符时 我遇到问题 它打印出 而不是元音变音字符 请在下面找到我的代码 有人可以帮帮我吗 String cmd cmd C si vie
  • namshi/jose 5.0.2 在 macosx 上需要 lib-openssl

    我查看了其他问题 但找不到解决方案 尝试安装时JWT包我收到标题中提到的错误 我在 mac os x Sierra 上使用 xampp 版本 7 0 8 和 PHP 5 6 我得到的错误如下 Problem 1 namshi jose 5
  • 声明方法时,各种参数前缀的含义是什么?

    声明方法时 参数的各种前缀是什么意思 sh cmd block 什么是 before cmd mean 什么是 before block mean 星号 意味着将所有剩余的参数组合到一个由该参数命名的列表中 与号 意味着如果给方法调用一个块
  • 从 NT 服务向远程桌面会话发送消息

    如何从 nt 服务向在远程桌面会话中启动的应用程序发送 sendmessage 和 postmessage 目前我通过应用程序之间的udp通信暂时解决了这个问题 您不能跨会话边界发送消息 因此 您需要一个 IPC 解决方案 例如 TCP I
  • 从另一个数组中过滤对象数组

    我有两个数组 我想过滤一个包含另一个数组中的对象的数组 let array1 date 1 count 4 date 3 count 6 let array2 1 2 3 4 过滤这两个数组后 我需要过滤后的数组 如下所示 let arra
  • 在 ASP.NET Core 中将 RTSP 流从 IP 摄像机转发到浏览器

    我有一个 Blazor 托管应用程序 我需要根据客户请求从 AXIS 摄像机获取 h264 录制内容 通过 RTSP PLAY 命令 并以浏览器可以重现视频的方式返回它 如果向 AXIS 摄像机查询录音列表 答案包括这个 即我尝试在浏览器上
  • Coldfusion 9.0.1 标准 64 位和 Oracle 11g 64 位 ODBC 连接导致“架构不匹配”

    我有一个新构建的 64 位 Windows Server 2008 R2 机器 上面安装了 64 位 Coldfusion 9 Standard 我已将其升级并修补至最新版本的 CF 我还在盒子上安装了 64 位 Oracle 11g 11
  • 如何在 C++20 中创建模板别名的推导指南?

    假设我有一个类 结构模板及其构造函数的显式推导指南 让这个类有两个模板参数 其中一个可以通过推导指南推导 另一个则不能 template
  • 不带小数的 LinearAxis

    我想避免我的轴中出现小数 我该怎么做 XAML
  • 如何调试 Swift PlaygroundBook?

    当我探索 Playground Book 示例代码时 例如this one 我发现运行代码非常乏味 因为 Playground Book 对代码运行位置的限制 只能在 iPad 的 Swift Playground 上运行 无法在 iOS