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]
) でこれを試しましたが、同じエラーが発生します。
これをクリーンアップするための提案はありますか?