我想创建一个
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") } } }