0
这是在XCode 7.3上。Swift 2.2 - 代码崩溃,除非我关闭优化(-Onone)
如果我使用优化标记-O
构建代码,它将会崩溃。它工作正常,没有优化(标志-Onone
)。不过,我希望通过优化来构建我的代码。
它是Swift编译器的bug吗?
这是代码。
import Foundation
extension Dictionary where Key: StringLiteralConvertible, Value: AnyObject {
func multipartFormParams(preFix preFix: String = "") -> [String: AnyObject] {
var params: [String: AnyObject] = [:]
for (key, value) in self {
let subKey = preFix != "" ? "\(preFix)[\(key)]" : String(key)
if let value = value as? [String: AnyObject] {
// params += value.multipartFormParams(preFix: subKey) // this is my original code, however remove the operation extension += to focus on the bug.
value.multipartFormParams(preFix: subKey) // It crash here.
} else {
params[subKey] = value
}
}
return params
}
}
let parameters: [String: AnyObject] = [
"user": [
"first_name": "first",
"last_name": "last"
]
]
parameters.multipartFormParams()
它在哪里崩溃? –
@MarcoSantarossa看到一行'value.multipartFormParams(preFix:subKey)#它在这里崩溃。 – dfri
@MartinR:编译器不会崩溃,这是一个运行时错误。 – CIMinuv