私は(25以上の)View Controllerを持つアプリを持っています。これらのVCは多くのデータを使用していますが、そのほとんどはローカルにアプリケーションに保存することも、サーバーに保存することもできます。私はむしろアプリケーションのサイズを最小限に抑えるためにこのデータをサーバーに保存したいので、そうするためのベストプラクティスは、すべてのデータを取得する特別なクラスであるデータクラスを持つことですviewDidLoad
などのように、必要に応じて個々のデータを取得するのではなく、一度に1つの場所でインターネットを使用できます。だから私の質問は、それは本当に私のアプリ内のすべてのクラスの描画から中央データソースを作ることが良いですか?もしそうなら、私はそのクラスをどのように設定すべきかの例を提供することができますか?たとえば、バックグラウンドで実行する方法(別のスレッドと思います)と、NSDictionaryとNSArraysなどをデータソースから必要に応じて個々のクラスに渡す方法について説明します。前もって感謝します。私は必要に応じて明確にすることができます。すべての私のView Controllerのセントラルデータソース
答えて
次の2つの異なったトピックについて話している:
- は、すべてのビューコントローラからの主な情報源からのデータにアクセスします。
- サーバーからのデータへのアクセス。
最適なソリューションは、いくつかの異なるクラスで使用される変数を保持する新しいクラスを作成することです。 This tutorialは、これを行う方法を説明しています - 私はこれがあなたがインターネット上で見つける最高のソリューションの1つになると思います。
2番目の質問を解決するには、SQLite文を実行し、データベースから情報を取得するクラスも作成する必要があります。あなたはそれを行うためにSQLiteを使うべきです。もしあなたがそれを気に入らなければ、Core Dataを使ってみることができます。私の意見ではSQLiteははるかに単純です。 This tutorialにその方法を説明しています。
両方を実行したら、ビュー・コントローラー間で情報を共有し、異なるビュー・コントローラーからそのインスタンスにアクセスするクラスのデータベース・サービスを処理するクラスのインスタンスを作成できます。
最後に、別のスレッドでそのようなタスクを実行しようとする可能性があります。あなたはNSOperationQueueオブジェクトを使ってやってみるべきです - 彼らはあなたの仕事の大部分を行います。 Appleが提供しているdeveloper documentationの記事を読んで、その仕組みを理解することをお勧めします。
この回答に感謝します。徹底的に書かれているようです。私はあなたが提案した材料とアイデアを見て、私が仕事の解決策を得ることができるかどうかを見極めるつもりです。 – Andrew
コメント欄にご回答をもとに、私は、このソリューションをお勧めします:デバイスにサーバーからデータを転送する
- を - あなたのサーバーから あなたのデータをダウンロードした後、中のSQLiteデータベースに保管してくださいデバイス
- 多くのビューコントローラからデータにアクセス - コアデータ を使用して、ビュー コントローラのいずれかからデータベース内のダウンロードデータにアクセスします。
データベースプログラミングについてよくわからない場合は、コアデータを簡単に開始することができます。テーブルを簡単なobjective-cクラスのようにアクセスできるクラスにカプセル化するので、SQLを習得する必要はありません。また、必要に応じて、いつでも任意のView Controllerから呼び出すことができるため、データを処理するための特別なクラスを作成する必要はありません。また、ビューコントローラー階層を介してデータを渡すよりも、パフォーマンスに優れ、より洗練された設計に優れています。ガイドhereを参照してください。
- 1. コンテナビュー内の別のView ControllerからView Controllerをロードする
- 2. iOS - すべてのView Controllerにグラデーションをバックグラウンドとして追加
- 3. 最後のView Controllerの3つのView Controllerの近接度
- 4. すべてのView ControllerでUITabBarControllerを解放するには?
- 5. 別のView Controllerに戻って別のView Controllerに転送する方法
- 6. 別のView ControllerでView Controllerを起動する方法は?
- 7. View Controller NIBを別のView Controllerに追加する
- 8. フリップコンテナView Uibutton上のView Controller内のビュー
- 9. TabBarItemの複数のView Controller
- 10. すべてのビューが1つのView Controllerにリンクされていますか?
- 11. iOSのView Controllerで複数のView Controllerを表示する方法
- 12. 1つのView Controllerから別のView Controllerへデータを渡す方法
- 13. view to controller communication
- 14. View Controller resize
- 15. ファイルApp View Controller?
- 16. iOS5 Second View Controller
- 17. iPhone View Controller Register
- 18. View Controller lifecycle
- 19. AngularJS view-controller
- 20. PresentModel View Controllerの問題
- 21. 私は1つのView Controllerから他のView Controllerへのアクションを素早く行いたい3 xcode
- 22. uitabbarcontrollerのすべてのView Controllerに共通クラスを使用する方法は?
- 23. View Controllerの終了は直前のView Controllerに戻りません
- 24. ユーザーが別のView Controllerにログインした後、Main View Controllerをリフレッシュする
- 25. .swiftを変更してView ControllerではなくTable View Controllerに接続する
- 26. 私は別のView ControllerにView Controllerを5秒間追加したいですか?
- 27. Xcode、Swift、Table View Controller
- 28. 自動プレゼンテーションView Controller
- 29. Page View Controller viewDidLoad()Issues
- 30. Model-View-Controller with GWT
これは、あなたのアプリが何をしているのかを知らなくてもちょっと答えにくいです。 – Altealice
本当に重要ですか?それは多くの情報を持っています。その大部分は、plistsの配列と辞書の形式で格納されています。配列の内容が栄養アドバイスや数式である場合、なぜ重要なのですか? – Andrew
質問の目的は、その情報にアクセスしてそれを処理するためのより良い方法を見つけることです。 – Andrew