Chciałem się dowiedzieć jaka jest prawidłowa (najlepsza) metoda komunikacji pomiędzy obiektami w konkretnym przypadku. Mam model World, który zawiera tablicę dataSources obiektów WorldDataSource. W każdym WorldDataSource jest tablica var places: [SomeType].
Chciałem się dowiedzieć w jaki sposób powinienem informować World o zmianie places w jednym z dataSources.
Wydaje mi się, że mam 3 możliwości, ale jeśli są inne to proszę o podpowiedź.
1) Stworzyć sobie protokół WorldDelegate (zaimplementować go w World) i var delegate: WorldDelegate w każdym WorldDataSource, przypisywać delegate na World i w WorldDataSource.places { didSet {} } wywoływać jakąś metodę na delegate.
2) Dziedziczyć po NSObject i używać addObserverForKeyPath tak jak wcześniej w Obj-C.
3) Używać NSNotificationCenter, ale to mi się wydaje słabym pomysłem.
Podobna sytuacja będzie jak będę chciał informować o takich zdarzeniach kontroler, ale akurat teraz chodzi mi o obserwacje Model->Model.
Jaka jest najlepsza metoda do tego typu obserwacji?