swiftc因退出代码1而失败

时间:2016-12-17 21:16:58

标签: swift compiler-errors

extension SlideInAnimator: UIViewControllerAnimatedTransitioning {
    func animateTransition(using transitionContext: UIViewControllerContextTransitioning) {

        // This works
        UIView.animate(withDuration: 0.3, animations: { }) { transitionContext.completeTransition($0) }

        // transitionContext.completeTransition causes the error
        UIView.animate(withDuration: 0.3, animations: { }, completion: transitionContext.completeTransition)
    }
}

Xcode没有显示任何错误,但在编译时,会导致标题中显示的错误(即使在清理后)。每当我注释掉第二个动画时,错误都不会显示出来。这是一个错误还是我不允许像第二个动画一样使用它?

3 个答案:

答案 0 :(得分:3)

swiftc failed with exit code 1消息表明编译器由于内部问题而崩溃。根据我的经验,这可能会或可能不会表明您的代码存在某种类型的语法错误(虽然您发布的内容对我来说很好),但无论哪种方式,编译器都无法像您一样处理它写完了。

不幸的是,Swift工具链仍然非常多,有时您必须帮助它#34;通过尝试不同的语法来处理你正在做的事情。

您可能需要查看https://bugs.swift.org并查看是否已为其报告错误,如果没有,则添加一个错误。

答案 1 :(得分:2)

使用xcode 8.2和swift 3.0的简单解决方案

  1. 点击项目导航器的左上角(您的项目名称)并使用(cmd + shft + k)清理项目。
  2. 完全从托盘中提取Xcode。
  3. 再次打开项目。
  4. 等待让xcode完成文件索引。
  5. 运行项目,就是这样。
  6. 享受快乐的编码!!!

答案 2 :(得分:0)

我花了几个小时试图找出swiftc退出代码1的原因。 看完几个帖子后,清理项目&多次重启xcode,注释掉新的代码等等,我放弃了,开始创建一个新项目。

当我将第一个.swift文件从旧项目复制到新项目时,我注意到我在不同的文件夹中有两个同名的.swift文件。我整理了我的文件,项目编译好了。

总之,正如其他帖子所述,退出代码1似乎是当编译器发现奇怪的东西时的一个笼子。意外的是它没有正确处理。