Преобразовать массив Swift в словарь с индексами [дубликаты]

На этот вопрос уже есть ответ здесь:

Ошибка: постоянное значение передано функции уменьшения 3 ответа

Я использую Xcode 6.4

У меня есть массив UIViews, и я хочу преобразовать в словарь с ключами"v0", "v1"..., Вот так:

var dict = [String:UIView]()
for (index, view) in enumerate(views) {
  dict["v\(index)"] = view
}
dict //=> ["v0": <view0>, "v1": <view1> ...]

Это работает, но я пытаюсь сделать это в более функциональном стиле. Я думаю, это беспокоит меня, что я должен создатьdict переменная. Я хотел бы использоватьenumerate() а такжеreduce() вот так:

reduce(enumerate(views), [String:UIView]()) { dict, enumeration in
  dict["v\(enumeration.index)"] = enumeration.element // <- error here
  return dict
}

Это чувствует себя лучше, но я получаю ошибку:Cannot assign a value of type 'UIView' to a value of type 'UIView?' Я пробовал это с другими объектамиUIView (То есть:[String] -> [String:String]) и я получаю ту же ошибку.

Любые предложения для очистки этого?

Ответы на вопрос(1)

Ваш ответ на вопрос