0

私は現在、最初の iPhone アプリケーションを開発しています。すべてのコントローラーで使用されるオブジェクトを共有する最良の方法を知りたいです。

他のコントローラーで必要なデータを含むコントローラーを参照し、プロパティのおかげでこのデータにアクセスすることを考えていましたが、それは良い考えですか、それともより良い方法がありますか?

または、アプリケーションのどこからでもアクセスできるグローバル変数 (const ではない) を宣言できますか?

ありがとうございました

4

2 に答える 2

4

あなたの質問からは、あなたが扱っているデータの種類が明確ではありませんが、iPhone アプリケーションで使用したアプローチの 1 つは、アプリケーションの状態と状態管理機能を含むシングルトン オブジェクトです。

Cocoa With Loveでは、この種のデータに対するシングルトンとアプリ デリゲートの使用についての良い議論があり、私は彼がここで言わなければならないことに同意します。

たとえば、この場合のアプリケーションは Web アプリケーションに関連付けられたユーザー アカウントを持っていたので、ロード時にアプリケーションはシングルトン オブジェクトを初期化し、ユーザーがサインインすると、シングルトン内のユーザー オブジェクトへの参照を保持するため、ユーザー情報をAPI 呼び出しで参照されます。

このアプローチは、Objective-C でシングルトン クラスを作成する方法をここで確認できます。また、Apple ドキュメントは、同じ機能的な結果を提供するいくつかの方法があります。

シングルトン クラスを定義したら、それを applicationDidFinishLaunching またはメイン コントローラーの viewDidLoad で初期化し、管理する必要があるグローバルにアクセス可能なデータを初期化できます。このプロセス全体を管理するための考慮事項として、上記でリンクした Cocoa With Love の記事を読むことを強くお勧めします。

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

行き詰まっている場合は、いくつかのサンプル コードを投稿できますが、利用可能なシングルトン クラスのサンプルは非常に簡単に操作できます。

于 2009-07-24T23:38:30.247 に答える
0

本当にグローバルにする必要がある場合は、AppDelegateに配置するか、データ管理オブジェクトを作成できます。しかし、私はそれをそのようにすることは嫌われていると思います。

于 2009-07-24T22:58:18.890 に答える