私は間違いなく操作にエクスポートされた(多分間接的な)アクセス、独立したキュー管理、スレッドセーフ+ロックスタッフ(例えばVideosManager
と呼ぶ)コントローラの階層に応じて任意の解決策の代わりになど。
あなたのアプローチはView Controllerモデルで固執できますが、ほとんどの場合、それは良い考えではありません。
設計し、実装するためのクイックサンプルAPI:
(あなたは、さらに情報を用いて実装Video
インタフェースを持っていると仮定)
@interface VideoManager
+ (instancetype)sharedManager; // returning a shared singleton
- (void)startDownloadOfVideo:(Video *)video;
- (void)cancelDownloadOfVideo:(Video *)video;
- (void)cancelDownloadsExceptForVideo:(Video *)video;
- (BOOL)isDownloadInProgressForVideo:(Video *)video;
@end
実装が必要なキューでダウンロード操作を処理して動作する(主に接続インスタンス着信データを処理し、ファイルまたは出力ストリームに適切に書き込むことで、必要に応じてダイナミックにフローを制御することができます。これは、あなたが反復してそれをあなたの要求に合うようにすることができる素早い素朴なスキームです。