3

長年の読者、初めてのポスターはこちら。

NSURLConnectionを作成し、その結果をUILabelに表示するテストアプリを作成しています。

現在、通知センターオブザーバーを使用しています。このオブザーバーは、connectionDidFinishLoading内から通知を発行して、接続が正常に完了するのを待ってから、結果を探します。

ただし、私が概念化するのに苦労しているのは、View Controllerからアクセスして結果をUILabelに投稿できるように、応答データをどこに保存するかです。(または、接続クラスのインスタンス以外の場所から。)

connectionDidFinishLoadingからUILabelに直接投稿したくありません。後で応答をどうするかを決定する方法が必要です。そのため、接続クラスは一般化されたままになります。

応答データをどこかに保存するためのより良い方法が必要です。そこでは、接続クラスのインスタンスが終了した後にそれを参照できます。

理想的には、接続クラスの複数のインスタンスを開いて、必要に応じて各応答に順番にアクセスできる場所が必要です。これにより、View Controllerまたは他のよりグローバルな場所で変数を作成し、それに応答をダンプする可能性がなくなります。

ここでどのデザインパターンを使用できるか、または使用すべきかについてのアイデアをいただければ幸いです。

4

1 に答える 1

1

あなたが始めるための私の提案は次のとおりです:

  1. シングルトンクラスを作成します。プロパティNSDictionary*infoまたはNSArray*infoListがあります。アプリのどこからでも同じデータにアクセスできます。プロパティを更新し、通知を投稿し、viewControllerからプロパティにアクセスします。
  2. 情報をplist/ファイルに保存します。情報をシリアル化するか、プレーンストリームを保存します。したがって、ファイルへの書き込みが終了したら、通知を投稿し、アプリ内の任意の場所からファイルから読み取ります。

どちらの場合も、複数の接続が必要な場合は、ファクトリデザインパターンを使用することをお勧めします。

于 2012-04-29T08:12:06.940 に答える