Вызов массива словарей, инициализированных в классе

Что я делаю не так быстро?

 class ActivityDetailsModel {
    var ActivityProfile: [[String]]
    init(ActivityProfile: [[String]]){
        self.ActivityProfile = ActivityProfile
    }   
} 

var act = ActivityDetailsModel(ActivityProfile: ["cell2"+"firName": "two"])

дает Невозможно вызвать инициализатор для типа 'ActivityDetailsModel' с аргументом типа (ActivityProfile: [String: String])

1 ответ

Сигнатура типа переменной ActivityProfile является Array из Array скорее, чем ожидалось Array из Dictionary,

Это использует альтернативный синтаксис, чтобы прояснить

class ActivityDetailsModel : Printable {
  var activityProfile : [[String:String]]

  init(activityProfile: [[String:String]]) {
    self.activityProfile = activityProfile
  }

  var description : String {
    return activityProfile.description
  }
}

var act = ActivityDetailsModel(activityProfile: [["cell2"+"firName": "two"]])
println(act)

PS: проще читать начинать имена переменных со строчной буквы

Другие вопросы по тегам