Iphone 如何在我的应用程序中显示下载的UIProgressView?
我想显示一个进度条,指示我的iPhone应用程序下载了多少文件。我知道如何在IB中设置UIProgressView等等。但是我需要数据,比如文件大小(以字节为单位)来运行它。如何将这些功能与字节下载代码(如下所示)集成Iphone 如何在我的应用程序中显示下载的UIProgressView?,iphone,nsurlconnection,uiprogressview,uiprogressbar,Iphone,Nsurlconnection,Uiprogressview,Uiprogressbar,我想显示一个进度条,指示我的iPhone应用程序下载了多少文件。我知道如何在IB中设置UIProgressView等等。但是我需要数据,比如文件大小(以字节为单位)来运行它。如何将这些功能与字节下载代码(如下所示)集成 如果切换到使用ASIHTTPRequest库,则可以显示逐字节进度视图 我真的建议你至少去看看。它使iPhone上的这些东西变得非常简单,我在所有应用程序中都使用它。它将进行同步和异步连接,处理cookie和身份验证,并使编写POST请求变得非常简单。它还有一个内置的网络队列 N
如果切换到使用ASIHTTPRequest库,则可以显示逐字节进度视图 我真的建议你至少去看看。它使iPhone上的这些东西变得非常简单,我在所有应用程序中都使用它。它将进行同步和异步连接,处理cookie和身份验证,并使编写POST请求变得非常简单。它还有一个内置的网络队列
Naaah…我的东西大部分都已经准备好了。我不想再进去换东西了。不过谢谢..有什么方法可以得到服务器上文件的大小(以字节为单位)?这样我就可以使用UIProgressView了
- (void)connection:(NSURLConnection *)theConnection didReceiveData:(NSData *)data
// A delegate method called by the NSURLConnection as data arrives. We just
// write the data to the file.
{
#pragma unused(theConnection)
NSInteger dataLength;
const uint8_t * dataBytes;
NSInteger bytesWritten;
NSInteger bytesWrittenSoFar;
assert(theConnection == self.connection);
dataLength = [data length];
dataBytes = [data bytes];
bytesWrittenSoFar = 0;
do {
bytesWritten = [self.fileStream write:&dataBytes[bytesWrittenSoFar] maxLength:dataLength - bytesWrittenSoFar];
assert(bytesWritten != 0);
if (bytesWritten == -1) {
[self _stopReceiveWithStatus:@"File write error"];
break;
} else {
bytesWrittenSoFar += bytesWritten;
}
} while (bytesWrittenSoFar != dataLength);
}