天道酬勤,学无止境

Xcode 10 playground is not showing the output

I am using Xcode 10 on macOS Mojave 10.14.4. When I open the playground I am unable to get the output window to output anything, even using the print command it stays blank. Is there any other program for mac that shows output as you code in swift? Or has anyone encountered and was able to fix this problem?

评论

Swift playgrounds can be flaky. To see any output you first have to run the playground. Look at the screenshot of an empty Mac playground where I added a line to print the contents of the str variable:

If you move the mouse over the left side of the editor, a Run button will appear, which you can see at Line 3 in the screenshot. Clicking that button will run that line of code. Clicking the Run playground button will run the whole playground. The results will appear in the right side of the window. Some output will also appear in the debug area.

I stuck with a similar problem and tried different solutions - nothing worked for me. While I was able to run playground via command-line, I was not able to run it in XCode (for me it looked like nothing was printed in console). Finally discovered that Cylance antivirus was silently terminating my playground scripts. Uninstalling Cylance solved this problem.

I've submitted a review of interrupt's answer which is pending. I'm posting this second answer so others can see it quicker.

I had the same issue as interrupt did. However, you don't have to uninstall Cylance.

Simply going to Cylance Dashboard and whitelist your application to allow Xcode to execute your code to generate output.

** EDIT **

After some investigation, performing the steps I've previously mentioned (now removed), will only be a temporary fix. When a new instance of Xcode launches and the project is opened once again, Cylance will flag it as Potential Unwanted Program (PUP).

I've emailed Cylance support team as I am a current subscriber and I was given the following answer

Hello XXXXXXX,

I have ran two SHA's in your quarantine against the system and both of them have appeared as "PUP ScriptingTool". If you can sign these files with a certificate, then they might not get detected and quarantined.

-Michael

Cylance advertises themselves as "Next Gen EndPoint Detection and Recovery" product using AI. And yet, it flags my "hello world" program. The "fix" was to generate a certificate for the app, which tells me that it flags all unsigned apps as PUP. That is not smart! I now stand by interupt's answer.

Delete CylanceProtect and stay away from this app.

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • 如何在 Swift Playground 中重新打开控制台输出?(How to reopen Console Output in a Swift Playground?)
    问题 我很高兴在 Swift/Xcode 6 Playground 的助理编辑器中println控制台输出(有关更多信息,请参阅此 SO 线程),直到我决定尝试单击 [X] 关闭控制台输出。 我如何将控制台输出带回来? 回答1 这也让我有一段时间无法理解。 你想要View menu -> Assistant Editor -> Show Assistant Editor 。 一旦您看到包含控制台输出的窗格,如果您仍然没有看到正确的内容,请进行任何将导致println()触发并且控制台输出应该出现的更改。 回答2 只需将鼠标指针悬停在值评估区域(编码区域旁边的窗格)上,然后单击加号即可打开输出窗格。 如果您已关闭输出窗格中的控制台输出,请单击编码区域中的任意位置并按 Enter。 您将获得控制台输出。 回答3 如果 View > Assistant Editor > Show Assistant Editor 不起作用,只需转到屏幕底部并将小页脚向上拖动,如下所示: 回答4 关闭 Playground 并重新打开并没有将控制台输出带回来,但退出 Xcode 并重新打开可以。 如果有一个不需要重新启动 Xcode 的答案,我会这样做,但现在这似乎是答案:/ 是的测试版软件! 回答5 您可以按照以下步骤恢复控制台框架: 打开助理编辑器。 在助理编辑器中,找到 Playground
  • 如何使用Swift Playground打印到控制台?(How to print to console using swift playground?)
    问题 我一直在遵循Apple Guide的新语言快速指南,但是我不明白为什么右侧的栏只显示“ Hello,Playground”而不是“ Hello,world”。 有人可以解释为什么println没有被打印在右边吗? // Playground - noun: a place where people can play import Cocoa var str = "Hello, playground" println("Hello, world"); 回答1 在Xcode 6.3和更高版本(包括Xcode 7和8)中,控制台输出显示在运动场窗口底部的“调试”区域中(类似于项目中的显示位置)。 要显示它: 菜单:视图>调试区域>显示调试区域(⌘⇧Y) 单击工具栏中工作区布局小部件的中间按钮 单击窗口底部时间线旁边的三角形 任何写入控制台的内容,包括Swift的print语句(在Swift 2 beta中从println重命名)都显示在那里。 在较早的Xcode 6版本中(到目前为止,您可能应该无论如何都应进行升级)显示助手编辑器(例如,通过单击输出区域中某位旁边的小圆圈)。 控制台输出出现在此处。 回答2 您需要启用Show Assistant编辑器: 回答3 只需按Alt + Command + Enter打开助手编辑器。 助手编辑器将打开时间线视图。 默认情况下
  • Xcode 6 Beta / Swift - Playground 未更新(Xcode 6 Beta / Swift - Playground not updating)
    问题
  • iOS/tvOS 操场因“无法找到所选运行目标的执行服务”而失败(iOS/tvOS playground fails with "Unable to find execution service for selected run destination")
    问题 迁移到 XCode 7.1 后,我无法在 iOS 和 tvOS 平台上使用 Playground。 只有 OS X 有效。 最简单的操场代码产生错误信息: 无法找到所选运行目标的执行服务 我怀疑这与 XCode 找不到合适的模拟器有关,但是我不知道在哪里以及如何配置它。 我在现有项目中尝试了操场,以及刚刚从启动画面中新创建的操场。 任何想法可能有什么问题? 更新: 检查控制台可以提供更多信息,但仍然不清楚如何修复: 24/10/2015 10:16:10,193 lsd[279]: LaunchServices: Could not store lsd-identifiers file at /private/var/db/lsd/com.apple.lsdschemes.plist 24/10/2015 10:16:10,212 com.apple.usbmuxd[82]: LOCKDOWN_V2_BONJOUR_SERVICE_NAME is _apple-mobdev2._tcp,8de107c0 24/10/2015 10:16:10,248 Xcode[819]: DeveloperPortal: Using pre-existing current store at URL (file:///Users/courteouselk/Library/Developer
  • 在 Xcode Playground 中打印每个数组项?(Printing each array item in Xcode Playground?)
    问题 当循环遍历数组并打印 Playground 中的每个项目时,输出为(x times) 。 其中 x 是计数。 除了计数,有没有办法让 Playground 输出每个项目? 回答1 在 Playground 中,转到菜单 查看 > 调试区 > 显示调试区 它将显示控制台,您可以在其中看到print的结果。
  • 游乐场导入:没有这样的模块“ Foo”(Playground Import: No Such Module 'Foo')
    问题 我一直遵循Apple的指示将自定义模块导入操场,包括此处的指示。 但是我得到了: 游乐场执行失败:/var/folders/z3/kd0nj4ln1rgcpm8bdz7067wh0000gs/T/./lldb/1874/playground1.swift:7:8:错误:无此类模块'Foo'导入Foo 如何恢复到Playground的正常导入状态? [编辑:注意,有两个答案已经给出了将游乐场与框架相关联的详细说明; 我遵循了这些指示,但是没有运气。 该解决方案将需要重新配置Xcode中的某些内容。 我的安装显然已损坏] 错误和尝试的详细图片: 这是基于@EricD的答案的另一种尝试,显示了目录结构,没有骰子。 回答1 对于上述解决方案均不起作用的那些解决方案(并且Xcode构建路径设置已设置为Unique ),我找到了一个解决方案。 该框架必须使用iOS模拟器设备(列表中的任何设备)而不是Generic iOS Device的方案构建,因为Playgrounds不支持该方案。 这个为我工作: 回答2 这是我使用Xcode 7.1进行OS X的方法: 创建新项目:OS X Cocoa Framework,Swift。 在此示例中,我将其命名为“ TestPlaygroundFMK”。 创建一个新的Swift文件。 在文件中添加一个类。 该代码必须是公开的。 我为我们的示例做了这个
  • 带有UIImage的Swift游乐场(Swift playgrounds with UIImage)
    问题 我正在使用Xcode 6,并且正在尝试重新创建在会话401“ Xcode 6的新功能”中演示的代码。 我已将图像添加到Images.xcassets(称为Sample),并且在运动场文件中尝试按演示方式访问该图像。 我的代码如下(如演示): var sample = UIImage(named: "Sample") 但是,我无法使其像演示一样工作。 我想念什么吗? 回答1 在Finder中打开.playground文件。 在它旁边创建一个名为Resources的文件夹。 将您想要的任何图像添加到此文件夹。 在操场上,按opt-cmd-1打开File Inspector。 您应该会在右边看到游乐场。 如果尚未选择,请按cmd-1打开“项目导航器”,然后单击“游乐场”文件。 在“资源路径”下,选择“相对于游乐场” 单击下面的文件夹图标,然后选择先前创建的资源文件夹。 现在,您应该拥有一个可以与标准NSImage一起使用的捆绑软件(名称:“ filename_without_extension”): 注意:因为Xcode会经常覆盖.playground文件夹,所以我建议使用此方法,这样资源文件夹就不会经常删除和重新创建。 回答2 查看iOS开发者库->游乐场帮助并搜索“资源文件”,您将找到答案 1,打开.playground 2,通过选择视图>导航器>显示项目导航器来显示项目导航器
  • Xcode Playgrounds Shared Directory Not Working
    When creating an Xcode Playground, the supported playgroundSharedDataDirectory does not properly show my the expected directory. Expected: ~/Documents/Shared Playground Data Actual: file:///var/folders/46/zg_mg07d5h5_9t6q_4vr9_2w0000gn/T/com.apple.dt.Xcode.pg/containers/com.apple.dt.playground.stub.iOS_Simulator.MyPlayground-BEF6F13E-994E-45C9-A18E-7DE953069D69/Documents/Shared%20Playground%20Data/ import UIKit import PlaygroundSupport print(playgroundSharedDataDirectory) This also does not link to the directory. If I place a file in the correct directory, I cannot read it. If I place it in
  • 尝试在 Swift 操场上执行此操作时 Xcode 冻结?(Xcode freezes when trying to execute this in a Swift playground?)
    问题
  • Xcode playground 卡在“正在运行的操场”或“启动模拟器”上并且无法运行代码,该怎么办?(Xcode playground gets stuck on 'Running playground' or 'Launching simulator' and won't run the code, what to do?)
    问题 每次我创建一个新的 Playground 以测试一些代码时,Xcode 都会卡住并且无法运行代码。 它只是在屏幕顶部显示“正在运行的操场”或“启动模拟器”语句,加载图标旁边有希望旋转,但没有任何反应。 有时这会无限期地持续下去,有时 Xcode 会停止并将其打印到控制台: Playground execution failed: error: Couldn't lookup symbols: __swift_FORCE_LOAD_$_swiftCoreImage __swift_FORCE_LOAD_$_swiftFoundation _playground_log_hidden _playground_logger_initialize _playground_log_postprint thread #1: tid = 0xc0cd0, 0x000000010ea7c3c0 MyPlayground`executePlayground, queue = 'com.apple.main-thread', stop reason = breakpoint 1.2 frame #0: 0x000000010ea7c3c0 MyPlayground`executePlayground frame #1: 0x000000010ea7b9c0 MyPlayground`__37-
  • 如何将第3方框架导入Xcode Playground?(How to I import 3rd party frameworks into Xcode Playground?)
    问题 如何将第三部分框架导入Xcode Playground? Swift Playground显然具有框架导入机制,因为我们可以导入Cocoa , SpriteKit和OSX Playground中的XCPlayground ( XCPlayground是,iOS中似乎缺少XCPlayground ) 我真正想做的是从操场上隐藏代码并能够显示一个最小的示例。 关于如何将框架加载到Swift游乐场有任何想法吗? 也可以看看: 如何从您自己的项目中将自己的类导入Playground 是否可以将第三方Objective-C代码导入Swift游乐场? (此问题有所不同,因为请求是在Playground中使用框架,而不是简单的常规swift文件) 回答1 编辑:从Beta5开始,当游乐场是将框架构建为目标的工作空间的一部分时,将支持此功能。 Apple开发人员论坛站点上有更多详细信息,但希望@Rick Ballard可以在此处将其添加到他的答案中,这应该成为该问题的明确答案。 不要再执行以下操作! 短期而言,虽然没有受支持的解决方案,但是如果要生成模块/框架,则可以将其复制到SDK的System/Library/Frameworks目录中,然后以与导入系统框架相同的方式import <#Module#> 。 对于OS X游乐场: /Applications/Xcode6-Beta.app
  • Swift Playground是否支持UIKit?(Does swift playground support UIKit?)
    问题 我试图在操场上创建一个UILabel ,但是失败了。 游乐场目前仅支持OS X开发吗? 回答1 是的,它确实! 文件:新建>文件...> iOS>源>操场 import UIKit let lbl = UILabel(frame: CGRect(x: 0, y: 0, width: 300, height: 100)) lbl.text = "Hello StackOverflow!" 然后,保存文件。 (或手动运行它。)这将触发Playground解释与UI相关的内容。 此时,单词“ UILabel”应出现在右侧。 现在,要实际查看已完成的操作,必须单击右侧的“快速查看”眼睛或单击白色圆圈以在Assistant Editor中将其打开: 这是UIImage工作时的一些基本内容的屏幕截图,等等。 (编辑:次要文本更新为当前的CGRect语法-但是,屏幕截图仍显示旧的语法。) 回答2 Edited @ 2014-11-13:看来新的xcode 6已经解决了这个问题。 不,不是。 但值得注意的是,您可以导入UIKit。 如果要导入UIKit,请遵循以下步骤: 查看->实用程序->显示文件检查器(opt + cmd + 1) 在Xcode的右侧,将“游乐场设置->平台”从OS X更改为iOS 那么您可以导入UIKit或iOS的某些模块 ps。 我尝试创建一个UIImageView
  • Xcode Playground 时间轴为空(Xcode Playground Timeline empty)
    问题 我正在尝试在 xcode 7.3.1 版中为操场使用时间线助手编辑器,它始终为空。 时间线助理编辑 我认为错误来自 xcode,但是从搜索来看,似乎没有人遇到相同的错误,所以我很困惑。 回答1 要显示print结果,您需要通过转到菜单打开“调试区域” 查看 > 调试区 > 显示调试区 或点击左下角的按钮: 要显示时间线图,您可以使用XCPCaptureValue : import XCPlayground var x = 0 for i in 0...10 { x += i print(x) XCPCaptureValue("Value for x", value: x) } 但XCPCaptureValue已被弃用,将来将不可用(没有可用的替代品)。 另一种方法是通过单击右侧的“+”按钮来内联显示图形: 右键单击图表,您可以选择显示值历史记录: 回答2 我自己刚刚开始使用 Playgrounds,遇到了无法打印到时间轴的相同问题。 这篇 Medium 文章解释了如何在 Xcode 8 和 Swift 3 的时间线中显示或渲染事物。基本上,您必须创建一个视图并将其分配给 PlaygroundPage.current.liveView: import UIKit import PlaygroundSupport let contentView = UIView(frame
  • Swift Playground 执行速度(Swift playground execution speed)
    问题
  • iOS Playground不显示UI预览(iOS Playground doesn't show UI preview)
    问题 我使用XCode 7.1创建了一个简单的游乐场,并输入了以下简单代码: import UIKit import XCPlayground var str = "Hello, playground" let color = UIColor (red: 1 , green: 1 , blue: 0 , alpha: 0 ) let view = UIView() view.backgroundColor = UIColo (colorLiteralRed: 1 , green: 0 , blue: 0 , alpha: 0 ) view.frame = CGRect (x: 0 ,y: 0 ,width: 100 ,height: 100 ) let label = UILabel (frame: CGRect (x: 5 , y: 5 , width: 50 , height: 20 )) label.text = str view.addSubview(label) 当Playground运行时,它不显示UIKit对象预览,而仅显示调试信息: 我究竟做错了什么? 回答1 打开预览面板:“视图”>“助手编辑器”>“显示助手编辑器” 然后在您的代码中: import PlaygroundSupport PlaygroundPage.current.liveView = view
  • Xcode 10 Playgrounds 变量初始化的变化? Xcode 10 Playgrounds 是解释器吗?(Change in Xcode 10 Playgrounds Variable Initialization change? Are Xcode 10 Playgrounds an interpreter?)
    问题 我注意到 Xcode 10 中的 Playgrounds 不再允许使用已声明但未初始化的变量。 例如:虽然此代码可以在 Xcode 9 playground 中运行,但在 Xcode 10 playground(至少在 Beta 1 中),它会崩溃: var myValue: Int //... myValue = 100 print (myValue) // Xcode 9 prints 100 // Xcode 10 reports an error: variables currently must have an initial value when entered at the top level of the REPL 这是新行为,还是当前 Xcode 10 beta 中的一个错误? 我一直将早期的 Xcode Playgrounds 称为解释器,但人们还会将 Xcode 10 playground 视为解释器吗(而且总是正确的)? Apple 将装订线中的“运行”按钮称为“编译”代码。 谢谢! 回答1 我遇到了这个错误。 我有两个不同的操场,一个有错误,一个没有。 问题是我的操场没有设置“自动运行”。 要设置该选项,请单击 Playground 中调试窗口顶部的播放箭头,您将看到“自动运行”选项,选择它。 必须是自动运行模式更像是运行整个程序,而手动运行则不是。
  • Xcode 6 Beta:没有这样的模块“Cocoa”(Xcode 6 Beta: No such module 'Cocoa')
    问题 我正在尝试在 Xcode 6 Beta 的 swift 文件中使用标准 Cocoa 库。 我按照此说明进行操作,但是当我导入库时 import Cocoa XCode 抱怨错误 No such module 'Cocoa' 我也尝试过 REPL,我完全没有问题。 我想这是一个错误,因为我开始了不同的项目,只是有时我会遇到这个错误。 有什么建议? 我正在使用小牛队 (10.9.3) 回答1 代替 import Cocoa 和: import UIKit 回答2 您无法从 iOS 游乐场或应用程序import Cocoa 。 确保您的代码在 Cocoa playground 中运行(在新文件对话框中选择OS X > Source )。 回答3 从您的问题来看,您似乎正在尝试将Cocoa class添加到您的 iOS 应用程序而不是Cocoa Touch class 。 所以这不是 Xcode 的错误。 请务必选择以下屏幕截图中显示的iOS部分下的模板,因为我们为 iOS 应用程序选择它。 回答4 如果您已经创建了 Playground,您可以在“文件检查器”对话框中在 iOS 和 OS X 平台之间切换; 无需创建新的 Playground。 import Cocoa仅适用于 OS X Playground。 转到“查看”>“实用程序”>“显示文件检查器”,然后它位于“游乐场设置
  • Xcode 8.3 中损坏的 Playgrounds(Playgrounds broken in Xcode 8.3)
    问题
  • 如何在快速的操场上读取文件(How can I read a file in a swift playground)
    问题 我正在尝试使用以下内容使用Swift操场读取文本文件 let dirs : String[]? = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true) as? String[] if (dirs != nil) { let directories:String[] = dirs!; let dir = directories[0]; //documents directory let path = dir.stringByAppendingPathComponent(file); //read let content = String.stringWithContentsOfFile(path, encoding: NSUTF8StringEncoding, error: nil) } 但是,这将失败且没有错误。 似乎第一行阻止了Playground在下面输出任何内容 回答1 这对我有用。 我唯一更改的是明确显示文件名(在您的示例中是隐含的)-也许您在“文件”变量的屏幕外定义中有错字? let dirs = NSSearchPathForDirectoriesInDomains
  • 在Swift Playground中使用SceneKit(Using SceneKit in Swift Playground)
    问题 我到处都在寻找这个,但是我还是一片空白。 您如何复制Chris Lattner在WWDC的Playgrounds和SceneKit上演示的内容? 我想在Playgrounds中制作一个SceneKit动画场景。 我尝试从SceneKit项目模板剪切并粘贴设置代码,以为它可以神奇地开始渲染,但事实并非如此。 我尝试观看主题演讲,暂停并放大Lattner的屏幕以查找源代码的提示,但他似乎正在从项目的其他位置导入所有代码,因此没有任何线索。 文档中似乎没有任何内容,或者我丢失了它。 回答1 由于Swift在版本之间不具有源兼容性,因此此答案中的代码可能在Swift的将来版本或早期版本中均不起作用。 目前已更新为可在带有Swift 2.0的Xcode 7.0 Playgrounds中使用。 XCPlayground框架正是您所需要的,并在此处进行了说明。 这是一个非常简单的场景,可让您开始使用Swift中的Scene Kit: import SceneKit import QuartzCore // for the basic animation import XCPlayground // for the live preview import PlaygroundSupport // create a scene view with an empty scene var