将字典传递给init方法

时间:2018-05-16 14:12:16

标签: swift

我已经定义了一个字典:

var seats = [String: [String:Bool]]()

我如何将座位的类型([String: [String:Bool]]())传递给我班级的init方法?

我试过了:

init(initSeats : [String: [String:Bool]]()) {
    //code
}  

这不会编译并报告错误:

  

预期','分离器

2 个答案:

答案 0 :(得分:1)

函数定义应该只包含类型,而不是类型的实例。正确的版本是:

init(initSeats : [String: [String:Bool]]) {
    //code
}  

答案 1 :(得分:1)

类型为[String: [String:Bool]]

所以你会用

init(initSeats: [String: [String:Bool]]) {
   // your init code
}

但是如果你打算使用这个,那么typealias会更好地输入并记住它。

typealias SeatType = [String: [String:Bool]]

var seats = SeatType()

init(initSeats : SeatType) {
    //code
}