Xcode 更新后 Swift Playgrounds 无法正常运行
Posted
技术标签:
【中文标题】Xcode 更新后 Swift Playgrounds 无法正常运行【英文标题】:Swift Playgrounds aren't acting correctly after Xcode Update 【发布时间】:2017-03-27 23:42:59 【问题描述】:我一直在制作一个使用touchesBegan
方法来接受用户交互的Swift Playground。它与我从互联网上下载的 NewtonsCradle 和其他 Swift Playground 一起运行良好。但我刚刚将我的 Xcode 更新到版本 8.3 并且 NO Swift 游乐场目前正在运行。
我的 Swift Playground 不再接受任何用户输入。 例如,我设置了一个测试视图,当我点击它时“触摸”不打印:
class TestView : UIView
public init()
super.init(frame:CGRect(x: 0, y: 0, width: 50, height: 50))
required init?(coder aDecoder: NSCoder)
fatalError("init(coder:) has not been implemented")
override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?)
print("touched")
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?)
override func touchesMoved(_ touches: Set<UITouch>, with event: UIEvent?)
override func touchesCancelled(_ touches: Set<UITouch>, with event: UIEvent?)
var controller = TestView()
PlaygroundPage.current.liveView = controller
PlaygroundPage.current.needsIndefiniteExecution = true
我还尝试运行 NewtonsCradle 代码(针对 Swift 3.0 更新的代码,所以这不是问题),球确实不响应用户交互,它们只是自己摆动。看到这张卡在左上角的照片:
任何人都知道出了什么问题,或者我能做什么?我真的很需要时间来完成这项工作。我也无法回滚到以前版本的 Xcode,因为我需要 Playground 才能使用最新版本。
编辑:我刚刚更新到 MacOS 10.12.4,它仍然坏了。有什么帮助吗?
编辑 2:我已经让其他人确认这是他们的问题。也许其他人也可以确认这一点,如果可能的话,也可以提交一份 Apple 错误报告或提出修复。
【问题讨论】:
我目前遇到了同样的问题,过去几天我一直在努力解决这个问题。我认为您需要确保您接受输入的类是UIViewController
的子类。我很确定视图控制器允许在第一次运行后继续执行操作。
据我所知,Apple 正在解决这个问题。同时,我建议您降级到旧版本的 Xcode 并使用它,直到它被修复。你可以在这里得到:developer.apple.com/download/more/?name=Xcode
@matt 显然这样的事情正在工作,但似乎与用户交互无关。
【参考方案1】:
Here 是 Apple 工程师提供的快速解决方案
您只需要退出 Xcode 并在终端中执行以下命令:
defaults write com.apple.dt.xcode IDEPlaygroundDisableSimulatorAlternateFramebuffer -bool YES
在我更新到 Xcode 8.3 后所有 UIPanGestureRecognizers
都停止工作的情况下,它有所帮助。
另请注意,这会降低渲染游乐场的质量。
【讨论】:
事实证明,这打破了我的视图大小。哦,好吧,猜我们正在等待它再次被苹果修复【参考方案2】:有很多解决方案:
清理 Xcode (Shift+Command+K) 深度清理 Xcode(Shift+Option+Command+K) 非常干净的 Xcode(删除/Library/Developer/DevrivedData
)
如果还是不行,重新安装 Xcode:
运行:
sudo /Developer/Library/uninstall-devtools
sudo rm -rf /Developer
然后从applications
文件夹中删除Xcode.app
。
【讨论】:
我应该如何清洁它?干净的 Xcode 变灰了?您还可以确认任何 Swift Playground 都在 Xcode 8.3 中为您工作吗?您可以运行类似我的示例代码并尝试单击它吗? @brettf 它对我有用,我一天前尝试过使用 Playground,但我还没有尝试过 NewtonsCradle,然后尝试重新安装 Xcode。以上是关于Xcode 更新后 Swift Playgrounds 无法正常运行的主要内容,如果未能解决你的问题,请参考以下文章
将代码更新到 xcode 9 和 swift 4 后应用程序崩溃
Xcode8/Swift 3 更新后缺少 Firebase 标头警告
Xcode 更新后 Swift Playgrounds 无法正常运行
更新到 Xcode 9 / Swift 4 后 AVCapture 出现奇怪的编译错误 [重复]
更新 Xcode 后,我的 Swift 3 项目无法正常运行,但构建成功
Alamofire 库 request.swift 文件中发生错误 - 更新到 xcode 8.1 后“任务使用不明确”