我正在嘗試刷新UIProgressView中的進度欄以獲取NSURLConnection
的上傳請求。目標是在上傳圖片的同時刷新進度條。經過幾次的搜索,我設法用我的連接委託的didSendBodyData
檢查這樣的進展:當使用NSURLConnection上傳時,將進度設置爲UIProgressView
- (void)connection:(NSURLConnection *)connection didSendBodyData:(NSInteger)bytesWritten totalBytesWritten:(NSInteger)totalBytesWritten totalBytesExpectedToWrite:(NSInteger)totalBytesExpectedToWrite
{
if([self.delegate respondsToSelector:@selector(progressView)])
{
self.delegate.progressView.progress = (totalBytesWritten/totalBytesExpectedToWrite) * 100.0;
}
}
一切工作正常,但問題是,這種方法只調用一次......所以酒吧暫時停留在0%,然後立即轉爲100%而不需要中間。我嘗試過(使用iPhone上的iOS6 develloper工具)將我的連接設置爲慢速連接,以判斷上傳是否太快,但不是,上傳需要一段時間,然後立即變爲100%該方法只被稱爲一次...
任何想法請嗎?謝謝 !我不知道如何解決這個問題...
謝謝你的回答,是的,我明白我的錯誤在這裏,但問題不是這一個......我的行當然是錯誤的,但問題是當我'NSLog'調用方法來檢查' bytesWritten','totalBytesWritten'和'totalBytesExpectedToWrite',我清楚地看到該方法只被調用一次,所有的值都等於'totalBytesWritten',所以沒有進展,只有0到100 ... –
@FabienParseError也許數據太小而不能以較小的塊切割。 – 2012-10-17 20:20:14
謝謝@ H2CO3!就是這樣!我試圖同時上傳10張照片,現在進度條顯示中間體;)對不起,感謝您的幫助! –