アプリのビュー コントローラーの 1 つを使用すると、サーバーからファイルをダウンロードできます。ただし、ユーザーはこのビュー コントローラーに移動し、[ダウンロード] ボタンをクリックしてから、前のビュー コントローラーに戻ることができます。[ダウンロード] ボタンのあるビュー コントローラーに再度移動すると、進行状況が表示されるか、ダウンロードが完了したことが表示されます。
したがって、View Controller自体はDownload操作への参照を保持できないように思われます。これは、NSURLConnectionのものを処理するNSOperationのサブクラスであり、操作が取得されるNSOperationQueueの所有者になることもできません。に追加。
この状況では、シングルトン ダウンロード マネージャーが必要ではないですか? シングルトンが落胆しているのをよく見かけますが、他にどうすればいいでしょうか? ここでも、いつでも割り当てを解除できる View Controller でダウンロードを開始できます。ダウンロードが開始されると、ユーザーが画面を離れたかどうかに関係なく終了するはずです。すべてを (メモリではなく) ディスクに直接ダウンロードしたい。次に、ユーザーが上記のビュー コントローラーにアクセスすると、ダウンロード マネージャーをチェックして、関連するダウンロードが完了しているか、進行中であるか、ダウンロードが開始されていないかを確認します。