ios – 将Swift Closures作为值添加到Swift字典中

前端之家收集整理的这篇文章主要介绍了ios – 将Swift Closures作为值添加到Swift字典中前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想创建一个 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")
        }
    }
}
原文链接:https://www.f2er.com/iOS/330519.html

猜你在找的iOS相关文章