データをテーブルビューに読み込むサービスがあります。サービスは、私は私のモデルにデータをロードデータをロードしたとき:テーブルビューには、それがどのデータのアップデートする必要があることを知っているように、これら2つのコールが「対応結合」している場合データが配列にロードされた後、テーブルがエントリを更新しない
[self.model.entries removeAllObjects];
[self.model.entries addObjectsFromArray:objects];
は今、私は疑問に思って直接self.model.entries
にバインドされています。私はこれを頼んでいます。なぜなら、サービスが完了した後に、テーブルがテーブルビューセルの数について再度私の代理人に尋ねないからです。バインディングが入り込まないようです。
テーブルビューでreloadData
と呼ぶことができます。もはや "拘束力のある哲学"には適合しません。
私のモデルクラスは新しいNSMutableArray
が存在しなければそれを返します。これがバインディングを使用する正しい方法であるかどうかは私には分かりません。
なぜこれがMVCパターンを破るのか簡単に説明できますか? – Besi
MVCの "C"部分を省略しているので、やや軽快です。 ;-)考え方は、モデルがUIについて何も知っていてはならないということです。逆もまた同様です。たとえば、配列によるデータのバックアップから辞書、データベース、またはWebサービスへのバックアップに切り替える場合、UIは変更しないでください。コントローラ内のグルーのみが変更されるべきです。フレームワークはあなたをより良いアーキテクチャに変えようとしているため、コントローラをバインドする必要があります。 –