Swift での KVO の現在のベスト プラクティスは、この SO 投稿に詳しく記載されており、次のようになります。
someObject.addObserver( self, forKeyPath: "someProperty", options: .New,
context: &self.someContext )
これをObserversManager (たとえば) クラスにカプセル化することで、メモリ管理の問題を簡素化したいので、次のようなことができます。
func observe ( observed: NSObject, observer: NSObject, keyPath: String,
context: Int )
{
observed.addObserver( observer, forKeyPath: keyPath, options: .New,
context: context ) { ... }
}
func removeObserversByObserver ( observer: NSObject ) { ... }
func removeAllObservers () { ... }
問題は、上記のfunc オブザーバーが次のコンパイル時エラーをスローすることです。公式ドキュメントには回答の詳細が記載されていないため、現時点では修正できません。
Could not find member 'New'