繁体   English   中英

Swift代码的Xcode 7 beta 5中的Release中的编译错误

[英]Compilation error in Release in Xcode 7 beta 5 in Swift code

我有以下代码。

class MyClass {
  private var callbacks: [()->()] = []

  func doIt(callback: (()->())?) {
    if let callback = callback {
      callbacks.append(callback)
    }

    // ... other code here
  }
}

当我在Release中构建项目时它显示以下错误:

命令由于信号失败:中止陷阱:6

断言失败:(PAI2-> use_empty()&&“不应有任何用途”),函数foldInverseReabstractionThunks,文件/Library/Caches/com.apple.xbs/Sources/swiftlang/swiftlang-700.0.52.2/src/swift/lib /SILPasses/SILCombinerVisitors.cpp,第549行。

在SILFunction“ @ TFC11AddCallback7MyClass4doItfS0_FGSqFT_T__T”上运行SILFunctionTransform“ SIL Combine”时。

请注意,该错误仅出现在Release中,并且仅出现在Xcode 7 beta 5中。该代码在Xcode 7 beta 4中起作用。

演示: https//github.com/exchangegroup/add-callback-demo-ios

看起来像Swift中的错误? 向苹果提交了错误报告。

更新资料

该问题已在Xcode 7.0 beta 6(7A192o)中得到解决。

我遇到了同样的问题(仅限Beta 5)。

这是我试图将闭包追加到闭包数组中的地方,在MyClass类中具有addCallback方法的情况下,它看起来与您的闭包相同。

尽管很愚蠢,但我可以通过更改以下代码来构建发布版本:

callbacks.append(newCallback)

对此

callbacks = callbacks + [newCallback]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM