12

Xcode 6.4を使用しています

UIViews の配列があり、キーを使用して Dictionary に変換したいと考えています"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(ie: [String] -> [String:String]) でこれを試しましたが、同じエラーが発生します。

これをクリーンアップするための提案はありますか?

4

1 に答える 1