3

アプリのビュー コントローラーの 1 つを使用すると、サーバーからファイルをダウンロードできます。ただし、ユーザーはこのビュー コントローラーに移動し、[ダウンロード] ボタンをクリックしてから、前のビュー コントローラーに戻ることができます。[ダウンロード] ボタンのあるビュー コントローラーに再度移動すると、進行状況が表示されるか、ダウンロードが完了したことが表示されます。

したがって、View Controller自体はDownload操作への参照を保持できないように思われます。これは、NSURLConnectionのものを処理するNSOperationのサブクラスであり、操作が取得されるNSOperationQueueの所有者になることもできません。に追加。

この状況では、シングルトン ダウンロード マネージャーが必要ではないですか? シングルトンが落胆しているのをよく見かけますが、他にどうすればいいでしょうか? ここでも、いつでも割り当てを解除できる View Controller でダウンロードを開始できます。ダウンロードが開始されると、ユーザーが画面を離れたかどうかに関係なく終了するはずです。すべてを (メモリではなく) ディスクに直接ダウンロードしたい。次に、ユーザーが上記のビュー コントローラーにアクセスすると、ダウンロード マネージャーをチェックして、関連するダウンロードが完了しているか、進行中であるか、ダウンロードが開始されていないかを確認します。

4

2 に答える 2

0

これは、シングルトン パターンを使用できる数少ないケースの 1 つだと思います。シングルトンの説明に正確に適合します(ウィキペディア経由):

ソフトウェア エンジニアリングでは、シングルトン パターンは、クラスのインスタンス化を 1 つのオブジェクトに制限する設計パターンです。これは、システム全体でアクションを調整するために 1 つのオブジェクトだけが必要な場合に役立ちます。

私は自分のアプリでこのようにしていますが、他の人がそれを行っているのを見てきました。

この投稿もあなたに興味があるかもしれません。すべての iOS アプリには 1 つのシングルトン (AppDelegate) が付属しているため、クラスはsingle instanceAppDelegate によって参照される単なる である可能性があります。

于 2013-10-11T09:46:06.897 に答える