Xcode 7 beta 5 Swift 代码中的 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 中构建项目时 它显示以下错误:
Command failed due to signal: Abort trap: 6
Assertion failed: (PAI2->use_empty() && "Should not have any uses"), function foldInverseReabstractionThunks, file /Library/Caches/com.apple.xbs/Sources/swiftlang/swiftlang-700.0.52.2/src/swift/lib/SILPasses/SILCombinerVisitors.cpp, line 549.
While running SILFunctionTransform "SIL Combine" on SILFunction "@TFC11AddCallback7MyClass4doItfS0_FGSqFT_T__T".
请注意,该错误仅出现在 Release 中,并且仅出现在 Xcode 7 beta 5 中。该代码在 Xcode 7 beta 4 中有效。
演示:https://github.com/exchangegroup/add-callback-demo-ios
看起来像 Swift 中的错误?已向 Apple 提交错误报告。
更新
此问题已在 Xcode 7.0 beta 6 (7A192o) 中解决。
我遇到了同样的问题(仅限 Beta 5)。
这是我试图将闭包附加到闭包数组的地方,它看起来与你的相同,你的 MyClass
[=26= 中有一个 addCallback
方法].
虽然很傻,但我通过更改此代码获得了发布版本:
callbacks.append(newCallback)
到这个
callbacks = callbacks + [newCallback]
我有以下代码。
class MyClass {
private var callbacks: [()->()] = []
func doIt(callback: (()->())?) {
if let callback = callback {
callbacks.append(callback)
}
// ... other code here
}
}
当我在 Release 中构建项目时 它显示以下错误:
Command failed due to signal: Abort trap: 6
Assertion failed: (PAI2->use_empty() && "Should not have any uses"), function foldInverseReabstractionThunks, file /Library/Caches/com.apple.xbs/Sources/swiftlang/swiftlang-700.0.52.2/src/swift/lib/SILPasses/SILCombinerVisitors.cpp, line 549.
While running SILFunctionTransform "SIL Combine" on SILFunction "@TFC11AddCallback7MyClass4doItfS0_FGSqFT_T__T".
请注意,该错误仅出现在 Release 中,并且仅出现在 Xcode 7 beta 5 中。该代码在 Xcode 7 beta 4 中有效。
演示:https://github.com/exchangegroup/add-callback-demo-ios
看起来像 Swift 中的错误?已向 Apple 提交错误报告。
更新
此问题已在 Xcode 7.0 beta 6 (7A192o) 中解决。
我遇到了同样的问题(仅限 Beta 5)。
这是我试图将闭包附加到闭包数组的地方,它看起来与你的相同,你的 MyClass
[=26= 中有一个 addCallback
方法].
虽然很傻,但我通过更改此代码获得了发布版本:
callbacks.append(newCallback)
到这个
callbacks = callbacks + [newCallback]