2017-09-20 6 views
2

現在、私はサーバーからファイルをダウンロードしようとしていますが、これはうまくいきます。 現在のURLSessionDownloadTaskの再開機能を確認するにはどうすればよいですか?


私の質問は、URLが再開したことをどのように知っていますか 能力または実際にダウンロードを開始する前に?
怒鳴るが、このような状況で私をGUID、、

class Downloader:NSObject,URLSessionDownloadDelegate { 
    /* 
    SOME PROPERTIES & DECLARATIONS 
    */ 

    override init() { 
     super.init() 
     let backgroundSessionConfiguration = URLSessionConfiguration.background(withIdentifier: url.absoluteString) 
     backgroundSessionConfiguration.networkServiceType = .default 
     self.defaultSession = URLSession(configuration: backgroundSessionConfiguration, delegate: self, delegateQueue: OperationQueue.main) 
    } 

    func start(_ block:DownloaderCompletionHandler?) { 
     guard self.input == nil else { return } 
     guard self.output == nil else { return } 
     if let data = self.resumableData { 
      self.downloadTask = self.defaultSession.downloadTask(withResumeData: data) 
     }else { 
      let request = URLRequest(url: self.input!, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 0.60) 
      self.downloadTask = self.defaultSession.downloadTask(with: request) 
     } 
     self.downloadTask.resume() 
    } 
    func pause() { 
     self.downloadTask.cancel { (data) in 
      self.resumableData = data 
     } 
    } 
} 

してくださいいくつかのコードスニペットです。事前に THANKS

+0

レジューム容量はどういう意味ですか?ダウンロードが中断された後に再開する機能を指していますか? – user1046037

+0

@ user1046037、はい、その部分を編集しました。あなたはいくつかの例を示すことができますか? – Vats

+0

すべての 'URLSessionTask'を中断して再開することができます。関数 'suspend' /' resume'を呼び出すだけです。自分で試してみてください。自分で試したことはありません。私の知る限り、特定のURLには何もありません – user1046037

答えて

0

あなたはHttpHeaders範囲でリクエストを送信し、応答で206のステータスコードを受信した場合、その後、あなたがダウンロードを再開することができます。それ以外の場合、ダウンロードは再開できません。

続きを読むhere

+0

こんにちは、すぐに感謝の返事をいただきありがとうございます。 – Vats

+0

はい私は状態コード206を手に入れましたが、ダウンロード中にこの情報を得ることが私の質問です。これのための方法はありますか? – Vats

関連する問題