Xcode Update

时间:2017-03-27 23:42:59

标签: swift xcode swift3 xcode8 swift-playground

我一直在制作一个使用touchesBegan方法接受用户互动的Swift游乐场。它一直很好用,还有我从互联网上下载的NewtonsCradle和其他Swift游乐场。但我刚刚将我的Xcode更新为版本 8.3 Swift游乐场目前正在运行。

我的Swift游乐场不再接受任何用户输入。 例如,我设置了一个测试视图,当我点击它时,触摸"不打印:

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,这不是问题),并且球 NOT 响应用户交互,他们只是自己摆动。看到这张照片停留在左上角位置:NewtonsCradle

任何人都知道出了什么问题,或者我能做些什么?我真的很有时间让它发挥作用。我也无法回滚到以前版本的Xcode,因为我需要Playground才能使用最新版本。

编辑:我刚刚更新到MacOS 10.12.4, 仍然 已损坏。有什么帮助吗?

编辑2:我已经让其他人确认这是他们的问题。也许其他人也可以确认这一点,如果可能的话,也可以提交Apple Bug报告或者提出解决方案。

2 个答案:

答案 0 :(得分:3)

Here可以快速修复Apple Engineers

您只需要退出Xcode并在终端中执行以下命令:

model

在我的情况下,在更新到Xcode 8.3后,所有defaults write com.apple.dt.xcode IDEPlaygroundDisableSimulatorAlternateFramebuffer -bool YES 都停止了工作。

另请注意,这会降低渲染游乐场的质量。

答案 1 :(得分:0)

有很多解决方案:

  • 清洁Xcode(Shift + Command + K)
  • 深度清洁Xcode(Shift + Option + Command + K)
  • 疯狂清洁Xcode(删除/Library/Developer/DevrivedData

如果仍然无效,重新安装 Xcode:

执行命令

sudo /Developer/Library/uninstall-devtools
sudo rm -rf /Developer

然后从Xcode.app文件夹中删除applications