2016-05-31 12 views
5

iOSでSwiftを使用してMVCパターンを実装する際に問題があります。アップルのドキュメントによると、MVCのスキーマがあります:MVCパターンの実装

MVC pattern

あなたはどのようにモデルが(exempleため、ソケットからの着信メッセージを)自分自身を変更したときに、見ることができるように私はそれで元気ですが、それはコントローラに通知するはずですか?

たとえば、メッセージのリストを表すモデルを持つチャットアプリケーションがあります。モデルが新しいメッセージを受信すると、それはコントローラにどのように通知されますか?それを行うための従来の方法はありますか?

ありがとう

+2

最も一般的な2つの方法は、委任とNSNotificationsを使用しています。 – Paulw11

+0

@ Paulw11はい、完璧に動作し、美しいですね、ありがとう! – Mathieu

+1

キー値観測(kvo)もこの問題を解決する魅力的な方法です。 NSHipsterには、これまでよりも面白い記事があります。http://nshipster.com/key-value-observing/ – Andrew2M

答えて

2

レイヤ間の通信は非常に興味深いトピックであり、単なるメソッドの一覧以上のものが必要です。

ここには、通信方法の網羅的なリストだけでなく、その強みと弱みを分析し、どの方法が最良かを判断するのに役立つフローチャートが示されています。あなたのケースでは

Making the Right Choice

、モデルは、送信者である、とコントローラは、受信者です。通常、コントローラーはモデルを保持しているため、コントローラーはモデルを認識しますが、モデルはコントローラーを認識しません。したがって、あなたはチャートの下部にいるでしょう。

詳しい記事をお読みください。また、Appleフレームワークの例もあります。それは本当に便利です。

関連する問題