4

計算を行うアプリケーションを作成しています。

私はたくさんのビューとビューコントローラーを持っています。

ユーザーはボタンをクリックして、アニメーションをトリガーする画面の領域を開閉します。他のテキスト フィールドを編集すると、特定のテキスト フィールドが無効になります。[計算] をクリックすると、一連の計算が実行され、結果が画面にアニメーション表示されます。

  1. ビュー..は、xib ファイルまたはストーリーボードで行うすべてのものです
  2. コントローラーは.. iOSアプリを作成するときに最初に使用するView Controllerです.. アウトレットとアクションを参照します

3.モデルは??? 私が実行する数学はモデルに入れるべきだと思います..ビューに直接影響を与えない計算上のもの。しかし、モデルは一体どこにいるのですか?! 一般的なオブジェクトを作成し、コントローラー内でインスタンス化するだけですか? 私が見たすべてのチュートリアルで..人々がView Controllerと関連するビューを使用しているのを見ただけです。

4

4 に答える 4

7

モデルは、あなたが言及した他のもののように標準的なものではありません。Xcode で単一ビュー アプリケーションを構築する場合、viewController と appDelegate が付属しています。お気づきのとおり、モデルがありません。

それは、独自のモデルを構築しているからです。モデルは通常、View Controller でインスタンス化し、そのメソッドを使用してデータを操作するオブジェクトです。モデルは、メソッドを介してユーザー入力からのデータを操作するオブジェクトを作成するために作成するファイルに.hなります。.m

ビューがモデルと直接対話することは良い習慣ではないため、またその逆も同様であり、あなたviewControllerは連絡役として行動します。ビュー (ボタン、ラベル) には、viewController がアクセスできる画面上のデータが含まれています。がviewControllerこのデータにアクセスできるようになると、そのデータがモデルに送信されます。前述のように、モデルは でインスタンス化するオブジェクトにすることができますviewController。それはあなたのアプリの思考を行い、viewController が送信するデータを操作します。

モデルをインスタンス化するのに適した場所は、viewDidLoad メソッドです。これにより、アプリの準備が整うと、モデルも準備が整います。

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.myModel = [[Model alloc] init];
}

viewControllerまた、インスタンス変数としてのモデルへの参照は、のファイルの先頭にあるプライベート クラス拡張に配置する必要があり.mます。

@interface ViewController ()
@property (nonatomic) Model *myModel;
@end
于 2013-07-30T01:07:37.013 に答える
3

いつものように、デザインはあなた次第です。必要なモデル オブジェクトを使用してコア データ モデルを作成することをお勧めします (これにより、クラス ファイルが生成されます)。iOS 学習の早い段階でコア データに慣れることは、ベスト プラクティスを習得するための優れた方法です。

これで始められるはずです。このようにすると、プログラムの状態を簡単に永続化でき、保守と拡張が簡単になります。

iOS開発頑張ってください。

于 2013-07-30T00:57:22.147 に答える
0

あなたの計算は実際にView Controllerに入ります。他のさまざまなメソッドで同じ関数を再利用したい場合を除きます。

モデルは、Core Data またはその他の永続的なストレージに保存したいものです。

基本的に、ビューは UI と通信し、モデルはデータベースと通信し、その他すべてはコントローラーと通信します。

于 2013-07-30T00:58:36.477 に答える