[英]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.