swiftでジェネリック型の配列に拡張機能を書きたいと思います。これは私がこれを行うことを試みた方法です:すぐに汎用オブジェクトの配列を拡張する
class Observer<Type> {
private(set) weak var observer: AnyObject?
private var listener: (_ newValue: Type) ->()
init(observer: AnyObject, listener: @escaping (_ newValue: Type) ->()) {
self.observer = observer
self.listener = listener
}
}
extension Collection where Iterator.Element == Observer<Type> {
func foo<Type>(value: Type) {
forEach { $0.listener(value) }
}
}
私は、このジェネリック型のパラメータを持つ関数を実行できるようにしたいと思います。そのような拡張機能を書く方法はありますか?後でこれは次のようになります。
let observers = [Observer<Int>]()
observers.forEach { $0.foo(4) }
:ことを考えればOK
、。 それは、associatedtypeとプロトコルを使って私が必要としていたものです。ありがとうございました。 –