2016-07-20 84 views
-1

我是新來NSURLSession,我沒有找到在其他stackoverflow問題的答案。所以我張貼這個。NSURLSessionDownloadTask可以恢復調用兩次嗎?

我在我的ViewController中有一個Button和ProgressBar。使用NSURLSessionDownloadTask的情況下,我打電話resume如下

@property (nonatomic, strong) NSURLSessionDownloadTask *downloadTask; 

@interface

NSURLSessionConfiguration *sessionConfiguration = [NSURLSessionConfiguration defaultSessionConfiguration]; 
NSURLSession *session = [NSURLSession sessionWithConfiguration:sessionConfiguration delegate:self delegateQueue:[NSOperationQueue mainQueue]]; 
self.downloadTask = [session downloadTaskWithURL:url]; 

@implementation上述各行指定的指定上面的行,並呼籲resume方法上buttonclick如下

-(void) buttonpressed:(id)sender{ 
    [self.downloadTask resume]; 
} 

這裏發生的事情是,

當我點擊按鈕第一次,它的下載完美

(即。調用合適的委託方法 downloadTask:didWriteData:totalBytesWritten:totalBytesExpectedToWrite & didFinishDownloadingToURL

但是,當我再次單擊該按鈕,這不是下載(即委託方法不是要求)

1)當我在做什麼錯誤?

2)我希望它再次下載,如果我第二次點擊按鈕。我應該爲此做什麼 ?

任何幫助表示讚賞,感謝您的時間(:

+1

你在哪裏打電話downloadTaskWithURL? –

回答

1

resume僅供暫停任務,你完成簡單的解決方法是在同一個創建並開始(實際上是恢復)的任務功能。

- (void)setupAndStartDownload { 
    // your setup code, from the OP 
    // then start it here 
    [self.downloadTask resume]; 
} 

-(void) buttonpressed:(id)sender{ 
    [self setupAndStartDownload]; 
} 
+0

我不知道它是如何被創建,如果我們所說的,在不同的功能。我的意思是,兩者都是同樣的權利? – Ganesh

+0

不知道我理解你的評論。我建議你用相同的函數創建和恢復會話灰。第一次調用該函數,然後再次通過按鈕代碼。 – danh

+0

對不起,我不明白。我想要的是,只要我點擊按鈕,它應該重新下載,即使我在按鈕動作中指定了一個功能,也不會發生這種情況。 – Ganesh

相關問題