1

iOS 用の MVC を理解しようとしていますが、自分がやっていることは適切であることを確認したいと思います。

NSString* の NSMutableArray を含む単純なクラスがあるとします。

@interface SimpleClass : NSObject

@property (nonatomic, strong) NSMutableArray *names;

@end

これは私のモデルです。はい?

これらの名前をアルファベット順にソートするメソッドを書きたいとしましょう。このメソッドはモデル内のメソッドにする必要がありますか、それともデータ コントローラー クラスで個別に実行する必要がありますか? 私には、このメソッドをモデルに含める方が理にかなっているでしょう。モデルが実際の並べ替えを行い、コントローラが並べ替えを初期化する場所でしょうか?

そうですか?

しかし、データの並べ替えはビューが表示するために必要なものであるため、これは本当にモデルの基本的な動作ですか?

4

2 に答える 2

0

あなたの疑問を一つ一つ解消させてください

質問: NSString* の NSMutableArray を含む単純なクラスがあるとします。

これは私のモデルです。はい?

回答: はい、「データの処理」という世界で唯一の目的を果たすため、モデル クラスです。

質問: これらの名前をアルファベット順に並べ替えるメソッドを書きたいとしましょう。このメソッドはモデル内のメソッドにする必要がありますか、それともデータ コントローラー クラスで個別に実行する必要がありますか? 私には、このメソッドをモデルに含める方が理にかなっているでしょう。モデルが実際の並べ替えを行い、コントローラが並べ替えを初期化する場所でしょうか?

回答: この方法は、必要に応じてデータを並べ替えているだけなので、視野に入れておく必要があります。将来、このデータを別の方法で並べ替える必要があるかもしれません。または、他のデバイス用にもこのアプリケーションを開発する必要があるかもしれません。また、他の要件のために、他の方法でソートする必要がある場合があります。モデルクラスまたはコントローラークラスでこれを行う場合、コードをスケーラブルに制限しているため、ビュークラスにする必要があります。

そしてコントローラーはすべてのビジネスロジックを実装します。

これが役立つことを願っています

于 2013-08-29T10:35:32.857 に答える
0

iOS で MVC を適用する場合は、モデルと viewContoller の 2 つの特別な部分があり、ビューとコントローラーが iOS で結合されます。必要に応じて、個別のビューとコントローラーを作成できます。

あなたの質問では、モデルクラスになる NSMutable 配列を使用して1つのクラスを作成します。

ここで、iOSビューのviewContollerでこれを行うよりもデータを並べ替えたいと言い、コントローラーを組み合わせて、コントローラー部分のデータを操作し、ビューに結果を表示できるようにします。

ただし、表示操作用に別のビューを作成する場合は、UIView をクレートしてビュー コントローラーに追加できます。

あなたがそのようなことをすることができるよりも、Webサービスを扱うアプリケーションを作成する場合のように

  1. サーバーから (プロパティ) データの設定と取得を行ったように、モデル クラスを作成します。
  2. すべてのWebサービス呼び出しを管理し、サーバーからデータを取得してモデルに設定するDAO(データアクセスオブジェクト)をクレートします。

  3. viewController(UIview controller)でデータを操作してビューに表示するか、3.表示データ用のspepateビューを作成し、ビューコントローラーでモデルデータに対してすべての操作を行い、モデルデータをビューに設定して、このビューをビューコントローラーに追加します。

詳細については、このリンクを参照して ください https://developer.apple.com/library/ios/documentation/general/conceptual/CocoaEncyclopedia/Model-View-Controller/Model-View-Controller.html

http://blog.teamtreehouse.com/ios-design-patterns-model-view-controller-part-3 これはもっと役立つかもしれません。

于 2013-08-29T11:16:58.893 に答える