我想创建一个
Swift字典,它将String类型作为其键,将Closures作为其值.以下是我的代码,但它给了我错误:
‘@lvalue与'(String,() – > Void)不完全相同
class CommandResolver {
private var commandDict:[String : () -> Void]!
init() {
self.setUpCommandDict();
}
func setUpCommandDict() {
self.commandDict["OpenAssessment_1"] = {
println("I am inside closure");
}
}
}
我试着在StackOverflow上查看关于词典中的闭包的其他问题,但它没有给我任何满意的答案.所以我非常感谢这里的一些帮助.
解决方法
如果在调用setup函数之前在init中初始化字典,它应该工作:
class CommandResolver {
private var commandDict: [String: () -> Void]
init() {
commandDict = [:]
setUpCommandDict()
}
func setUpCommandDict() {
commandDict["OpenAssessment_1"] = {
println("I am inside closure")
}
}
}