4

最初の2つのオンラインチュートリアル「YourFirstiOSApp」と「YourSecondiOSApp」を完了しました。後者は、ここに示すようにデータコントローラークラスを利用します

私は現在、「iOSプログラミング:ビッグナードランチガイド第3版」を進めています。ただし、データコントローラークラスを参照していないようであり、メソッドをモデルクラス自体に(つまり、MyClass.mではなくMyClassDataController.m)入れているようです。

最終的にはすべてが明らかになると確信していますが、誰かが私にもっと広い基準枠を教えてもらえますか?データコントローラークラスの使用は、単なる文体的な決定ですか?私は他のいくつかの本を調べましたが、それらもデータコントローラーについて言及していないようです。

4

2 に答える 2

6

それは素晴らしい質問です!正直なところ、どちらのアプローチも受け入れられます。Aaron Hillegrass(BNRの本を共同執筆している)は非常に尊敬されている開発者(Appleのエンジニアを訓練するためにさえ使用した)であり、明らかにあなたが見たAppleのサンプルコードは、いわば「馬の口から」です。

Appleがアプリで別のデータコントローラーを使用することを提案するのはなぜですか?データコントローラが関連するプロトコルに準拠している場合は、のようなものに直接接続できますUITableView。2つのデバイスのビューが異なるユニバーサルiPad/iPhoneアプリを作成している場合、これは非常に便利です。これは、ストーリーボードを使用している場合にも非常に役立ちます。Appleが言うように:

データコントローラークラスを使用すると、アプリ内の他のオブジェクトが、データモデルの実装方法について何も知らなくてもオブジェクトにアクセスできます[...]。

しかし、これはやり過ぎかもしれません。このパターンを使用しないアプリはたくさんあり、それらはそのロジックをViewController自体にスローします。両方に長所と短所があります。別の言い方をすれば、Appleが開発者のWebサイトに置いたサンプルコードをナビゲートすると、「YourSecondiOSApp」チュートリアルでAppleが提案したパターンに従わないアプリがたくさん見つかります。

于 2013-01-01T00:53:49.267 に答える
1

これは、データ(モデル)をコントローラーおよびビューから分離する中間的な方法と考えてください。

(優れた、私見の)BNRの本をさらに理解したら、データコントローラーの代わりにコアデータを使用してバードウォッチングの例を書き直すことをお勧めします。

それほど手間はかかりません-(私はそれを実行しました)。実際にこれほど単純な目的でコアデータを使用しようとすると、コアデータについての理解が深まります。

幸運を。

于 2013-01-01T00:59:08.917 に答える